Re: Reading Commodore 900 disks in the 8250 (LP)

From: Rhialto <rhialto_at_falu.nl>
Date: Thu, 11 Jan 2024 14:27:37 +0100
Message-ID: <ZZ_sycA-PDQFd3xg_at_falu.nl>
On Thu 11 Jan 2024 at 12:55:26 +0100, Michal Pleban wrote:
> Well, I guess then my specific question is: how do I execute code on the
> second CPU? When I send a "Memory-execute" or "user" command to the drive,
> it is being executed on the first CPU, correct?

There is a job code for putting in the job queue for a buffer to execute
the buffer on the second cpu.

IIRC, it is a bit tricky to return from that code to the usual ROM code,
since it may not happen with an RTS but may require a JMP to the correct
location. Which may differ for each version of the controller ROM. The
code for formatting a floppy uses this. It is too large to fit in the
controller rom, so it is copied into one or more buffers and then
started via the job queue. You can peek at the DOS code how that does
it. http://www.zimmers.net/anonftp/pub/cbm/firmware/drives/old/8050/d/
(Even the 1541 still does it mostly like that, even though this is
really not needed).

I came across somebody with a DOS 1.0 drive a long time ago, before I
was aware of any dumped ROMs from those. I had a program to extract the
controller ROM from DOS 2. I thought it would not be too hard to adjust
it for DOS 1. It ended up with a lot of attempted debug-by-mail and in
the end it never seemed to work...

> Michau.
-Olaf.
-- 
___ Olaf 'Rhialto' Seibert                            <rhialto/at/falu.nl>
\X/ There is no AI. There is just someone else's work.           --I. Rose


Received on 2024-01-11 15:00:45

Archive generated by hypermail 2.3.0.