Micro-print 85 for the 16 and 48k Sinclair SPECTRUM Micro-print 85 is an alternative print routine for all SPECTRUM micros, with a constant choice of 32, 36, 42, 51, 64 or 85 pitch characters-per-line printing for all the programs into which you install it. In effect your display format is optionally revised from the usual 22 lines of 32 character spaces into 24 directly accessible lines of 85 3-bit, 64 4-bit, 51 5-bit, 42 6-bit, or 36 7-bit wide character positions, and you can mix the five new narrower type faces together or with Micro-printed or ordinary Sinclair 32 pitch characters at any location. Your ZX Printer can be used to Micro-Lprint an individual text string, and there is an improved COPY command to enable you to select any group of between 1 and 24 consecutive screen lines for permanent record. How to use Micro-print in your own Basic programs. The code is instructed via four Basic variables which hold the number of characters per line (no) to be used, the line (li) and column (co) print is to start at, and the temporary attribute (at) to be used. The subject matter to be Micro-printed should be put into the print-string (p$), following which the relevant RANDOMISE USR command will Micro-print the string in it's new reduced-width form at the screen location just defined. For Micro-Lprint no, co and p$ only are required, and the selective screen COPY is established by setting-up just the first line (fl) and last line (ll) of the group to go to the printer. _- How to load and 'call' Micro-print in your SPECTRUM. 16k version 48k version Clearing CLEAR 31500 64268 Loading LOAD "MP85/16"CODE 31500 MP85/48 is 64268 M-print RANDOMISE USR 31796 64564 M-COPY RANDOMISE USR 31830 64598 M-Lprint RANDOMISE USR 31880 64648 Saving SAVE "MP85/16"CODE 31500,1100 MP85/48 is 64268,1100 Here is a simple example program using the 16k code. 10 PAPER 1: INK 7: BORDER 1: CLEAR 31500: LOAD "MP85/16"CODE 20 LET p$="Enter the world of 'Micro-print'"+CHR$ 0: CLS 30 LET no=32: LET li=10: LET co=0: LET at=79: GO SUB 110 4O LET no=36: LET co=2: LET p$=p$+CHR$ 0: GO SUB 110 50 LET no=42: LET co=5: GO SUB 110 60 LET no=51: LET co=9: GO SUB 110 70 LEt no=64: LET co=15: GO SUB 110 8O LET no=85: LET co=25: G0 SUB 110 90 LET p$="Here is a COPY of just the '36' and '42' type-faced lines from the screen.": RANDOMISE USR 31880 100 LET fl=12: LET ll=14: RANDOMISE USR 31830: STOP 110 RANDOMISE USR 31796: RETURN Now here are all the Micro-print operating rules. 1. Number of characters to be Micro-printed per line : LET no=32, 36, 42, 51, 64 or 85. Only integers are recognised, complex numbers and/or mistakes will always set no to 85. 2. Line to start Micro-printing on : LET li= any integer from 0 to 23. Micro-print will update both this variable and co, and return to Basic if li is bigger than 23. Print proceeds consecutively on the screen, but you can put a chr$ 0 into the string to make it start a new line, ie. LET p$ = "ABC" + chr$ 0 + "XYZ" will put the ABC where li and co dictate and the XYZ at column 0 of the following line. 3. Column to start Micro-printing at : LET co= any integer from 0 to one less than the value of no. If the column value is equal to or bigger than no then li will be increased by one and co set to zero, ie. start a new line. 4. Attribute to be set during Micro-printing of the string : LET at= any integer from 0 to 255, which you derive just like the ATTR function does in Sinclair Basic - ie. it's the sum of .... 1 x the number of the required ink colour (0 to 7) plus 8 x the number of the required paper colour (0 to 7) plus 64 for bright ink plus 128 for flashing print. Thus for example: at=56 is black on white, normal, steady. at=79 is white on blue, bright, steady. at=134 is yellow on black, normal, flashing. 5. The character string to be Micro-printed : LET p$= "The subject matter to be Micro-printed." The string can include all normally printable characters, in TRUE or INV form, ie. anything in the code range from 32 to 164. All other character codes are ignored except 0 (see li) and 20, which is the Sinclair control code for TRUE and INV video changes. 6. Micro-print character size and location : When a character is Micro-printed at a narrower pitch than 32 per line it's width and screen location are determined by the 3, 4, 5, 6 or 7-bit spacing which results from the 256-pixel line length divided by the 'no' value. The SPECTRUM paper/ink/ bright/flash attributes however can unfortunately only be set in 8-bit (1 byte) increments, ie. always 32 per line. Micro-print graphic characters are arranged 4:3 in 7-bit form, 2:3 in 5-bit and 1:2 in 3-bit whilst the UDG's always lose the rightmost 1, 2, 3, 4 or 5 bits. 7. Errors resulting from Micro-print operation : If any of the Micro-print routines are called without all the necessary control variables existing, your program will simply halt with the standard error message '2 Variable not found.' Enjoy your programming ! We are always interested to receive any comments on our software or provide advice wherever we can, your letters will be welcome and promptly answered. We want you to be able to enjoy the benefit of Micro-print in all your own programs, but would like to remind you that the code is the sole copyright of Myrmidon Software and you will therefore require our agreement if you wish to make commercial use of it. Thanks. Myrmidon Software, PO Box 2, TADWORTH Surrey KT2O 7LQ, England. Telephone No. Betchworth 2072 Micro-print 85 - Version 1. January 1984. -------------------------------------------- Document created by Frode Tennebø, 20070408.