[Coco] Having fun with hacking HDB-DOS

Juan Castro jccyc1965 at gmail.com
Sat Apr 19 23:10:23 EDT 2014


OK, now I have a good one. The only tricky part is flushing, there's
no obvious way to signal the end of a print job. So I set CHR$(12)
(form feed) to trigger a flush. All you have to do to make the print
job show up is

PRINT#-2,CHR$(12);

(I'm open to better suggestions.) LLIST works fine now.

All files are stored with lone CRs (CHR$(13)) as line terminators. In
Linux, you can translate them with the following command

tr '\r' '\n' <infilename >outfilename

Also, the DriveWire server treats print flushes asynchronously! That
ruined my idea of using CR as flush trigger (which wasn't such a good
idea to begin with) and is, in my opinion, not a good thing. You send
characters, flush, then quickly send more characters... and they
appear as part of the FIRST print file because the flush wasn't acted
upon yet. Not good.

More: you can set the print width in the DW server but AFAIK it
doesn't really do anything with that number. I use the contents of
LPTWID ($9B) to send CR's from RSDOS when the print position reaches
it. Some tweaks for other non-print characters (LF, BS) may be in
order.

Download links are the same:

ROM: https://dl.dropboxusercontent.com/u/15643089/16k-hdbdw3cc2.rom

Source patch: https://dl.dropboxusercontent.com/u/15643089/hdbdos-16krom.patch

Juan

On Sat, Apr 19, 2014 at 11:06 PM, Kip Koon <computerdoc at sc.rr.com> wrote:
> Hi Juan!
> That sounds Great!  Keep up the great work!  You definitely have a fan here.
> With your updates to HDB-DOS, you just might get me to do some work on the
> Basic side of things.  Now I can print Directories again!  I love the
> updates you've tried to do thus far.  Take care my friend.
> Kip
>
> -----Original Message-----
> From: coco-bounces at maltedmedia.com [mailto:coco-bounces at maltedmedia.com] On
> Behalf Of Juan Castro
> Sent: Saturday, April 19, 2014 9:02 PM
> To: CoCoList for Color Computer Enthusiasts; Lista CoCo
> Subject: Re: [Coco] Having fun with hacking HDB-DOS
>
> Still avoiding the complications of IDE, so I took on virtualizing printing.
> Now I can print to DW's virtual printer! But there's a catch.
>
> LLIST prints all lines without newlines between then. Also, I have to force
> a flush with PRINT#-2 in order to even that to show up. Well, at least
> PRINT#-2 works as advertised. I set it up so whenever a CR, LF or FF
> character is printed, I send a flush command. The text shows up in the
> cocoprints directory as it should.
>
> Examining the LLIST code (which is LIST with DEVNUM set as -2) I see it has
> the brilliant idea of not using CR or LF, but just outputs spaces until the
> "device position" reaches the "device width".
>
> OH NOW I GET IT. I should be updating the device position every time I
> output a character. Excuse me.
>
> On Fri, Apr 18, 2014 at 11:27 PM, Juan Castro <jccyc1965 at gmail.com> wrote:
>> No new functionality but a neat tweak. I added syntax to the DRIVE
>> command to select the I/O method (or "line"):
>>
>> DRIVE LINE 0 <- 38kbps DW
>> DRIVE LINE 1 <- 57kbps DW
>> DRIVE LINE 2 <- Becker port
>>
>> Also, I decided to give this concoction a reasonable-sounding name:
>> R+DOS-16. The 16 should be self-explanatory. R+ is the name of the
>> blog me and a bunch of others edit -- Retrocomputaria Plus.
>>
>> The ROM:
>> https://dl.dropboxusercontent.com/u/15643089/16k-hdbdw3cc2.rom
>>
>> The patch against the Toolshed repo:
>> https://dl.dropboxusercontent.com/u/15643089/hdbdos-16krom.patch
>>
>> On Thu, Apr 17, 2014 at 10:56 PM, Kip Koon <computerdoc at sc.rr.com> wrote:
>>> Hi Juan!
>>> Selecting IDE for everything, or selecting Drivewire for everything,
>>> or selecting an SD card for everything in the beginning sounds like a
>>> great starting point.  Think about being able to use to copy or
>>> backup command between drives in different slots in the MPI as well.
>>> That is a dream of mine in both HDB-DOS and NitrOS-9 as well.  The
>>> software just needs to be modified to do it.  In any event, I like
>>> that as a beginning towards the per selection idea.  Consider me a
>>> beta tester if you like.  I can erase and reburn my 27128 eprom all
>>> day long.  :)  I can hardly wait to see your next version.  In the
>>> past I have not been much of a gamer, but I will make an exception
>>> and test out your button command.  I assume it has to be a basic game
>>> using the joystick so can you recommend one for me to try?  Thank you
>>> again for a fantastic upgrade to HDB-DOS.  ;D Kip
>>>
>>> -----Original Message-----
>>> From: coco-bounces at maltedmedia.com
>>> [mailto:coco-bounces at maltedmedia.com] On Behalf Of Juan Castro
>>> Sent: Thursday, April 17, 2014 9:20 AM
>>> To: CoCoList for Color Computer Enthusiasts
>>> Subject: Re: [Coco] Having fun with hacking HDB-DOS
>>>
>>> On Thu, Apr 17, 2014 at 7:27 AM, Kip Koon <computerdoc at sc.rr.com> wrote:
>>>> Hi Juan!
>>>> I just tried WIDTH 51 and WIDTH 64!  They are great!  I love it!
>>>> Now I can see better when I list Basic programs on my Coco 1.  This
>>>> will definitely become my new Coco 1 HDB-DOS Drivewire Eprom image.
>>>> I have it running in a Glenside IDE controller.  When will the
>>>> triple driver version as in IDE, Hard drive, Drivewire for the 16KB
>>>> HDBDW3CC2 eprom
>>> image be released?
>>>
>>> I will have to do some very non-trivial coding in order to implement
>>> my idea of per-drive method selection. I intend to begin with
>>> something easier -- you select IDE for everything and it behaves just
>>> like normal IDE HDB-DOS for all drives, then you select DriveWire and
>>> it's DriveWire for everybody etc.
>>>
>>> What I lack to make it progress faster isn't time or resources --
>>> it's stamina. Gaaaaa.
>>>
>>> (Although having a very satisfied user is surely stimulating!)
>>>
>>>> I remember you mentioned something about that but I don't remember
>>>> exactly what you said.  By the way, what version number HDB-DOS was
>>>> this based on and will you be upgrading each new version of HDB-DOS
>>>> as
>>> they come out?
>>>
>>> I'm maintaining it as a patch to the Mercurial repository, i.e. the
>>> very very bleeding edge HDB-DOS code, bugs and all.
>>>
>>>> Thanks for an excellent upgrade to HDB-DOS.
>>>
>>> Thank you for testing. Hey, did you try the BUTTON() function with a
>>> joystick? It should work as the CoCo 3 version, but only for the
>>> first button of course.
>>>
>>> Juan
>>>
>>> --
>>> Coco mailing list
>>> Coco at maltedmedia.com
>>> http://five.pairlist.net/mailman/listinfo/coco
>>>
>>>
>>> --
>>> Coco mailing list
>>> Coco at maltedmedia.com
>>> http://five.pairlist.net/mailman/listinfo/coco
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> http://five.pairlist.net/mailman/listinfo/coco
>
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> http://five.pairlist.net/mailman/listinfo/coco



More information about the Coco mailing list