|
Post by eslapion on Sept 26, 2020 21:41:03 GMT
There are demos where they change $d020 per clock see $DF0A: ADDRESS CONTROL REGISTER Controlls the address counting during DMA. If an address is fixed, not a memory block but always the same byte addressed by the base address register is used for DMA. Bit 7: C64 ADDRESS CONTROL (1 = fix C64 address) Bit 6: REU ADDRESS CONTROL (1 = fix REU address) Bits 5..0: unused (normally all set) So you want to set bit 7 of DF0A to keep the C64 addresses fixed. That looks right! codebase64.org/doku.php?id=base:reu_registersLearning something new every day! The question is; How will the CIA react to having a value poked into one of its data port at every single Phi2 cycle ? Can it take that ? The SRQ can only signal at Phi2/4 so it could be assumed it takes a few cycles for a poke to the data port register to be reflected on the output. Anyone ever did that before ? Added edit: The user port requires buying an adapter to access on the Ultimate 64 but the alternative is the datasette port which has the READ, WRITE and SENSE lines tied directly to the IO port of the CPU. They are filtered with RC filters (of 100 Ohms and 470pF) but the cut-off frequency is 3.38MHz so that's no issue at 500kbps. Do you think it could work on that port ?
|
|
|
Post by oziphantom on Sept 27, 2020 7:48:20 GMT
The CIA data ports should just latch the data pins straight to the output pins, there might be some delay, ~70ns or so, but I would expect it to hit it directly. There is no really internal logic it needs to do with the pins just latch and hold the value. I would expect it to update every clock without issue. The SRQ is different from the DataPorts as it needs to clock out a serial shift so it does need to run an internal FSM.
if you can get the CPU fast enough to handle sorting the data and hitting the pins fast enough sure as you won't be able to use the REU on the CPU data port.
|
|