Proportional Print Routine...
=============================
14.May.2011
Looks like a good idea; I'd been thinking of having different formatting
options, but that seems to be a neater way of selecting them. It seems a
bit too tricky for now, although I have put in a toggle option, whereby USR
65000 enables proportional printing from LPRINT and USR 64985 restores
normal LPRINT/LLIST.

I've consolidated the two routines together with the lower screen mod and
the combined assembler listing and TAP file is
[url=http://www.users.globalnet.co.uk/~jg27paw4/pourri/propwrap.zip]here[/url].
I've included the three fonts, although Paddy's is the best one as it's the
easiest to read even though it's the most compact.

I've included a little BASIC program called "width" which takes a normal
character set and converts it into a PropSys form with each character left
justified and the appropriate header byte. Plus there's a line 9100 at the
end of the demo program which will construct a 96-byte width table from a
PropSys character set so that linewrap will work with it.



Proportional Print Routine...
=============================
29.May.2011
I've added the new version as PropSysATT in PropWrap.TAP in [url=http://www.users.globalnet.co.uk/~jg27paw4/pourri/propwrap.zip]propwrap.zip[/url]. This includes the attribute mod shown below, plus the various space saving changes which were later added to PropSys3. It will work with the original version of linewrap in the same TAP file, but is independent of it. The routine is CODE 64969,379, leaving 20 bytes spare before the UDGs.

I haven't included the character definitions. Just load the old version with its character set then load PropSysATT over the top and save back characters and code as CODE 64104,1244. This version of the routine is longer than the original but takes up less space when saved with the character definitions because, as well as some coding optimisation, the workspace was moved into an unused area between the character set and code.

Note that I removed the DEC DE just before label PST as DE isn't used any further in the loop and is re-assigned at the top. Also, PUSH/POP BC isn't needed as that's already been done elsewhere in the larger loop. I've tried numerous print tests at various key points and they all display correctly with no superfluous characters.

[code]
        ...
PUTIT:  LD   DE,(DFADD)
        LD   A,(DE)
        XOR  L
        LD   (DE),A
        CALL COLAD
        LD   A,(PIXPOS)
        AND  A
        JR   Z,PST

        ;attribute patch starts
        inc  e
        ld   a,e
        and  31
        jr   z,pst
	    ld   a, (XPOS)
	    or   248
	    ld   b, a
	    ld   a, (WIDTH)
        dec  a
        dec  a
	    add  a,b
	    jr   nc, pst
        ;attribute patch ends

        LD   A,(DE)
        XOR  H
        LD   (DE),A
        CALL COLAD
PST:    LD   HL,(DFADD)
        ...
[/code]
