80-Bus News


March–April 1983 · Volume 2 · Issue 2

Page 18 of 55

wasn’t interested in the idea, I kept getting funny totally uninformative error messages. Anyway as the linker and LOAD both didn’t want to know, and as I didn’t have the manual for the linker anyway, it was back to the instructions. These woffled on about using DDT and reading in the .HEX file with an offset calculated from the start address and the destination. Frankly it didn’t make a lot of sense, as it seemed to mean that DDT could take a HEX file, convert it to code and stuff it in the right place. This sounded cleverer than the DDT I know and hate, but as I hadn’t read all the words about DDT … perhaps … you never know. So I did it and it appeared to work. I examined the code at the start of the CCP as now overlayed by CCPZ and it was certainly different, but did CCPZ work? So save the file and SYSGEN onto the system tracks and find out!!

Now this is the natural cliff-hanger, where I should say this is the end of part one and watch this space for future developments. Aren’t you lucky this isn’t a serial, because of course it worked. I still don’t know why, and if it hadn’t I’d have actually had to read ALL the documentation to find out why. (Have you noticed I’m a great believer in “If it doesn’t work try reading the instructions”.) Anyway it worked, and I proceeded to check all the functions. There was one nice little tweek that Gemini have in their modded version on the Winnie, and that was to do with the USER command. You could either type:




Now as . is three letters less than USER, this seemed a good idea. So back to the source. It was easy enough to find the command jump table, so I added the extra command ‘.’ and reassembled it. Tuf, it now looked for the user number, the ‘13’, in the wrong place. I could get away with:

A>.   13

or even

A>   .13

But of course the routine that actually got the user number wasn’t bright enough to look for it someplace else if you actually moved it. Oh well, back to the source and find the routine, which, surprise surprise, was labelled GETNUM. At that point I looked at the clock and noted that it was well passed the witching hour and I was in imminent danger of turning into a pumpkin so I left it ..... and left it ..... and left it. One day I’ll get round to it but honestly, is it worth the bother I ask myself, and of course this is the way it will stay until the day when I have to change the user number 99999 times in one evening, THEN I’LL FIX THE B....RI!!

A Change Of Tactics

At long last, and about time too, the bit about the change of operating methods that this all brought about. Now I have lots of software, some purchased, odd bits stolen, some borrowed, a little ‘liberated’ and enough of my own to cause me considerable grief when trying to find what I’m looking for. Have you noticed that a lot of proprietary software often has a file called Install, so if you are trying to keep things together, it’s a bit daft to put two suites of programs on one disk without renaming the Install program of at least one of them. Now consider the case where 788K is available on one disk, this problem is not going to apply to just a couple of suites of programs, more like half a dozen. How to keep them separate? The simplistic answer is to use different user areas for each. Fine, but how to find them.

A long time ago I came across the cataloguing suite by Ward Christennsen in the CP/M users library and to date this has proved ideal, although I took it apart a long time ago because I didn’t like some of its ‘features’. Richard also had a go at it soon after. Well of course, this couldn’t keep track of things on different user areas, but one Sunday evening soon fixed that. Now CATUD can be called from any user area, CCPZ will of course find it where I left it, having loaded CATUD, CCPZ will switch back to the original user area and then execute the program. CATUD then constructs the names list for possible insertion into the

Page 18 of 55