[Coco] Printing from Disk Extended Color Basic (via Drivewire)

Robert Gault robert.gault at att.net
Sat Dec 31 05:18:24 EST 2016

Barry Nelson wrote:
> Where can I get a copy of this?
> Source code to if possible. Please?
>> Robert Gault robert.gault at att.net  <mailto:coco%40maltedmedia.com?Subject=Re%3A%20%5BCoco%5D%20Printing%20from%20Disk%20Extended%20Color%20Basic%20%28via%20Drivewire%29&In-Reply-To=%3C585D86A0.9030602%40att.net%3E>
>> Fri Dec 23 15:18:40 EST 2016
>> Art,
>> I place at $A2BF (start of the line printer code) a JMP Main. There is also at
>> $A30A (print to screen) a JMP TstChg so that I flush the DW4 print buffer if
>> necessary.
>> The entire ROM printer routine is bypassed.
>> As an update, I have been able to alter my code so that the DW HDBDOS ROM is not
>> required. You can write to Drivewire with a standard disk ROM.
>> Of some interest, I had to set the Coco clock to the fast rate $FFD9 before
>> sending to DW4 and back to slow $FFD8 after flushing the DW4 buffer.
>> Robert


I have sent to http://www.colorcomputerarchive.com/ a zip file containing 
versions for a Coco1, Coco2, and Coco3 using either Disk Basic 1.1 or DW-HDBDOS. 
It should be made public in the near future.

Regards the code, I either jsr [$D941] or use a duplicate of that routine copied 
from the HDBDOS DWWRITE.ASM Toolshed source code. That code sends regY bytes 
taken from regX location to the DW server. 'P tells DW to print and 'F tells DW 
to flush the DW buffer.
I put a jmp Main at $A2BF and my Main routine keeps track of printer position vs 
page width and sends the 'P code with a character or a 'P,$0D,'P,$0A as needed. 
At the end of all the data, the 'F flush code is sent.

With HDBDOS, you can get DIR output sent to the printer just by changing $6F to 
$FE but with a Disk Basic ROM, you need to change $CCC8 to the address of a 
routine to change $6F to -2 when $6F=$00.

As a challenge, when the programs get posted in the archive, try disassembling 
them. :)


More information about the Coco mailing list