Dragon 64 Serial Port

Hardware Hacking, Programming and Game Solutions/Cheats
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: Dragon 64 Serial Port

Post by pser1 »

just thinking about that
if the code is at $BF20 in mode 32, and we know that everything is moved $4000 up to go to mode64, then this code should go to . . . $FF20
And this is not going to happen because the copy rutine stops at $FF00, maybe I am forgetting something special(?)
In fact the original Dragon32 ROMS end at $BE7E and have zeroes from that point till $BFEF, just before the vectors $BF00-$BFFE

So, this code will only exist in 32 mode, despite the book says that it will be called by ROM2
In 32 mode only the Stephen's upgrade calls this part, so just to think about it . . .
why don't we change the call to $BF20 for a call to $BF32 and forget about that damned code?

Wouldn't it be possible that this were a copy of a part of CoCo code, and it is never used in a Dragon? or part of a project finally not implemented?

I think that there is no code in ROM to work with ACIA Interrupts, so if you really plan to write code to work this way, it will be necessary to create the IRQ rutine too.
So this makes me think again that this code if a side effect of a late Dragon64 addition.

If we look at the code from $BF20 to $BF31, it just gets out of the interrut rutine if there is not an ACIA interruption received, and if received, if there is no data recieved, it quits too.
Only when interrupt exists and data is present, it disables the receipt channel ... for what purposes? maybe not to have the data overun?, we just can imagine that there should be another code part to deal with that received data and once read to clear the interrupt flag, then it should enable reception again.
Post Reply