DISC speed tester

discuss both original and modern hardware for the bbc micro/electron
Post Reply
dp11
Posts: 1762
Joined: Sun Aug 12, 2012 9:47 pm
Contact:

DISC speed tester

Post by dp11 »

This is a very simple disc speed tester. CH."DISCSP" to run if your are interested. Improvements welcome.

Code: Select all

Time in centi seconds			
			UserPort      Pi1MHz	Pi1MHz	Pi1MHz
			MMFS           ADFS	MMFS    MMFSv2	
16K Seek Time		3		1	1	0		
16K OSGBPB		1071		16	915	912
16K *LOAD		44		18	18	17
Attachments
BOOT.ssd
(200 KiB) Downloaded 6 times
User avatar
sweh
Posts: 3325
Joined: Sat Mar 10, 2012 12:05 pm
Location: 07410 New Jersey
Contact:

Re: DISC speed tester

Post by sweh »

UPURSFS returned 0, 264, 264 for the 3 tests. Obviously seeking doesn't mean anything with that filesystem!
Rgds
Stephen
james
Posts: 347
Joined: Tue Aug 15, 2023 8:41 pm
Location: NE Hampshire
Contact:

Re: DISC speed tester

Post by james »

These results all come from running the test under MAME, with the supplied BOOT.ssd and a freshly-formatted ADFS-L disc with just the 2 files copied.
  • The standard Master ADFS and DFS flling systems
  • DFS 229 is supplied on the Master Welcome Disc.
  • BBC B with 1770/DFS 2.26

Code: Select all

		 MOS320   MOS350   OS120  MOS320  MOS320  MOS350
		ADFS150  ADFS203  DFS226  DFS224  DFS229  DFS245	
16K Seek Time	     19       19      31      12      12      11
16K OSGBPB	    187      168    1537    1417     263     264
16K *LOAD	    197      178     285     264     258     259
User avatar
jgharston
Posts: 5342
Joined: Thu Sep 24, 2009 12:22 pm
Location: Whitby/Sheffield
Contact:

Re: DISC speed tester

Post by jgharston »

One point: using things like block%!1=D% instead of ?&71=D%:?&72=D%DIV256:?&73=0:?&74=0 makes it much clearer what the program is doing, and makes it much easier to maintain the code. And you shouldn't stick your control block in an absolute location in memory, much better ask BASIC to give you a control block. Again, not juggling around with absolute numbers and having to remember what they mean. Eg:

Code: Select all

   10 REM > DISKSP
   20 REM DISC SPEED TESTER
   30 REM
   40 REM BY DOMINIC PLUNKETT
   50 REM
   60 MODE 7
   70 *SAVE TEST 3000+4000
   80 PRINT"DISC SPEED TESTER"
   90 PRINT
  100 F%=OPENIN"TEST"
  110 DIM D% 1024*16
  120 DIM ctrl% 15:X%=ctrl%:Y%=X%DIV256
  130 X%?0=F%:REM Channel
  140 X%!1=D%:REM Address
  150 X%!5=1 :REM Count
  160 X%!9=0 :REM Seek to start of file
  170 A%=3   :REM Read from file
  180 TIME=0:CALL&FFD1:T%=TIME
  190 X%!9=&3F00:REM Seek to end of file-256
  200 REM *BUG* Count hasn't been set, so Count will be left at zero from previous call
  210 REM Some filing systems get confused with a count of zero
  220 REM Should include:
  230 X%!5=1 :REM Count
  240 TIME=0:CALL&FFD1:Z%=TIME
  250 PRINT"Seek Time ",T%-Z%," centiseconds"
  260 X%!5=&4000:REM Count=16K
  270 X%!9=0    :REM Seek to start of file
  280 TIME=0:CALL&FFD1:T%=TIME
  290 PRINT"16K OSGBPB",T%," centiseconds"
  300 CLOSE#F%
  310 TIME=0:OSCLI "LOAD TEST "+STR$~D%:T%=TIME
  320 PRINT"*LOAD 16K ",T%," centiseconds"

Code: Select all

$ bbcbasic
PDP11 BBC BASIC IV Version 0.45
(C) Copyright J.G.Harston 1989,2005-2024
>_
User avatar
jgharston
Posts: 5342
Joined: Thu Sep 24, 2009 12:22 pm
Location: Whitby/Sheffield
Contact:

Re: DISC speed tester

Post by jgharston »

Another point, you should probably wait for five seconds or so between operations to let any spinning disks stop to avoid your test reporting smaller numbers due to "disk still spinning" optimisations in the filing system.

Code: Select all

$ bbcbasic
PDP11 BBC BASIC IV Version 0.45
(C) Copyright J.G.Harston 1989,2005-2024
>_
dp11
Posts: 1762
Joined: Sun Aug 12, 2012 9:47 pm
Contact:

Re: DISC speed tester

Post by dp11 »

Thanks for the improvements. I think for some filing systems we need a more accurate timer.
Post Reply

Return to “8-bit acorn hardware”