; -----------------------------------------------------------------------------
; ColorPRINT-48
; version 1.0
; Copyright (c) 2009 Andrew Owen

; -----------------------------------------------------------------------------
; ColorPRINT-48 is a MODE 2 characater printing tool for the ZX Spectrum 48K.
; It incorporates joefish's 'Rainbow Generator for 48K Spectrum using PUSH'.
; joefish's code turns half of the Spectrum screen into a display equivalent to
; Timex MODE 2. The MODE 2 area is centered on the screen and the rest of the
; display is mostly unaffected. Anything that switches off interrupts, such as
; a BEEP command, will interrupt the display.
;
; The code is only designed to work with 48K machines so it assumes the
; original ROM is in place and uses the empty bytes at 0x3bff as an interrupt
; vector table. It will still work on 128 models in 48 mode without additional
; hardware connected as even the +3 preserves the first two bytes of the table
; at this address.
;
; ColorPRINT-48 uses channels/streams to extend 48 BASIC.
; Use it with PRINT #4 CHR$ n (where n is 0 to 255). The co-ordinates are taken
; from the standard screen channel. To print at a specific co-ordiante use
; PRINT AT y,x; #4; "some text";. All 256 characters can be redefined. USR "A"
; is the first byte of the bitmap of character 144. USR "A" + 2048 is the first
; byte of the attributes of character 144. In the font area, USR "A" - 376 is
; the start of the bitmap of 'a', while USR "A" - 632 is 'A' and so on (the
; CHARS and UDG system variables are changed to point at the new data area).
; PRINT, PLOT, CIRCLE and DRAW now function on the bitmap only and will not
; modify the attributes in the MODE 2 screen area.