Modifying OS65D

Post Reply
lowrybt1
Posts: 98
Joined: Sun Mar 08, 2015 3:42 pm

Modifying OS65D

Post by lowrybt1 » Tue Apr 17, 2018 6:33 pm

Hello,

I am trying to connect a Shugart 400L to my C1PMF. I've got a home-made data/clock separator following the design Nelson Ingersoll published in Aardvark back in 1981. According to the article, I need to modify OS65D so that it plays friendly with the SA-400's slower stepper motor. The value I need to change is located at $26A3 on track 0. Is there a resource on this forum or elsewhere that lays out the steps I'd need to follow to load track 0, edit the value at the address and writing it back to disk?

Many thanks, Tom
C4PDF w. 24K, 2 x 5.25 MPI B-51 drives
C1P RevB with fully-populated 610 board and A-13. Klyball D-13.
Spares: 600 Rev.D, 610 board, 540A, A-13 with homebuilt data separator, MPI B-51 logic board (w/o data sep module) and mechanicals

dave
Site Admin
Posts: 450
Joined: Tue Sep 09, 2008 5:24 am

Re: Modifying OS65D

Post by dave » Fri Apr 20, 2018 8:46 am

I'm not able to test this out at the moment, but the general idea is to get the system booted (if you don't have access to an MPI drive or similar), then use the track 0 utility.

the disk boot routine from the C/D/W/M prompt will load track 0 to $2200, even if the step rate is off, since the routine will step until track 0 is indicated by a signal asserted by the drive when track 0 is reached. So even you you can't load the rest of the OS and boot normally, track 0 will be in RAM. You can reset and use the monitor "M" to change the value at $26A3, then execute at $2200 to resume the boot.

I see that the v3.3 disk image included with winOSI has the delay stored at $26a3 as expected.

Once you boot, exit BASIC and run the disk utility. Some manuals indicate the location is on track 13, sector 1, and others indicate track 6, sector 4. This may depend on the OS revision. I found it at Track 6, sector 4 on the WinOSI disk image. You'll need to reload it after entering BASIC or the extended monitor, which overwrite the contents of $0200. Also, don't count on modifying the contents of $26A3 and writing track 0 directly from $2200, since BASIC and EM appear to modify the page at $2200.

A* CA 0200=06,4
A* GO 0200

Once in the utility, read track 0 to a safe place (in this example, $5200)
R5200
E

Then enter the extended monitor:
* EM
:@56A3
5200/08 20 (you type 20 and hit return)
:EX

Then re-write track 0:
A* CA 0200=06,4
A* GO 0200
W5200/2200,8 (write 8 pages to track 0 from $5200, with load vector $2200)
E

I'm sure there will be some inaccuracies in the above, but hopefully that's enough to get you going.

Post Reply