CRTC Source Code Collection volume 1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This disc contains Z80 source code for a number of well-known
programs, for apprentice programmers to study and learn from.
All of the files are in Protext format and were written for Arnor's
excellent Maxam 1.5 assembler. You won't be able to use them with
Turbo Assembler (at least, not the current version), so don't bother
trying.
Although the source code is not intended to be reused verbatim or
reassembled - indeed, some programs (such as the BTL 3 intro and
PowerSpell) require additional resources before they will work
properly - you are welcome to write for permission should you find a
routine you can't live without. Side B of the disc also contains
several subroutines that you are free to use in your own programs.
Standard "Almost PD" conditions apply to all software on this disc: it
may not be distributed commercially or semi-commercially without
written permission from the author, and although you are welcome to
copy it on an individual basis, you should copy the whole disc rather
than just individual files.
Happy hacking!
Richard Fairhurst
October 1997
CRTC/Systeme D, Tea Cottage, Bottom Lane, Bisbrooke, Rutland LE15 9EJ
Source code files on side A
IMAGE .SRC ImagePrint - printer output enhancer
MACBUGS .SRC MacBugs - meeting demo
ORGANISE.SRC Desktop Organise - disc cataloguing system for DES
PLUS8BIT.SRC Patch to enable CPC Plus 8-bit printer port
SDOS1 .SRC S-DOS v1 - simple DOS (co-written by Rob Scott)
SPELL .SRC PowerSpell - user-friendly spell-checker
TAMSIN .SRC BTL 3 intro - the one with Tamsin the Wonder Cat
TEXTREAD.SRC EuroWACCI text reader (see .DOC file)
TOOLKIT .SRC AA Toolkit - collection of RSXs
Source code files on side B, user area 1
PRO-EXT .SRC Pro-Ext v1.5 - main program
EDIT .SRC font editor RSXs
GRAPHICS.SRC graphic conversion RSXs
COMMS .SRC Charley's Comms ROM - main program
BBS .MOD bulletin board commands
CONTROL .MOD serial interface control
FILE .MOD file upload/download
LIBRARY .MOD LBR file manipulation
SIO .MOD serial input/output
SUBROUT .MOD common subroutines
TERMINAL.MOD terminal emulator
Subroutines
~~~~~~~~~~~
This side contains a selection of subroutines I frequently call upon
for machine code programs. Many of them are far from the quickest
routines possible for such tasks: the division and multiplication
subroutines are particularly heavy-handed, for example, while even the
next screen line routine is quite slow.
However, they form a time-saving programming resource, and I hope you
will find them as useful as I have. You are welcome to use them in
your own programs: an acknowledgement that my code has been used would
be welcome.
Richard Fairhurst, October 1997
Filename Purpose
BANKS . Read/write byte to extra memory
CRC . CRC calculation routine
CRTC . Set CRTC register
DIVIDE . Divide HL by BC, returning rounded result in DE
FADEL2H . Fade low screen to high screen
FADESCR . Fade high screen to background
HEXINP1 . Input 1 hex byte
HEXINP2 . Input 2 hex bytes
INPUTF . Input filename
KEYSCAN . Scan all keys on keyboard
MODE1TO2. Convert MODE 1 screen to MODE 2
MK$PARAM. Make string parameter for RSX
MULTI . Multiply HL by A
NLINE . Go to next pixel line down
PDECA .SPC Print A as spaced decimal
PDECHL . Print HL as unspaced decimal
PHEX . Print A or HL as hex
PSG . Send sound chip register
PSTRING . Print string
READREG . Read sound chip register
SPCSCAN . Scan keyboard for space bar only
SPECCONV. Convert Spectrum-sized screen
UCASE . Convert A to upper case
WINLOAD . Load Advanced Art Studio window