!0.......^.........^.........^..

!B

\H11\H07\H10\H00       B I G   D E A L !        



!2.......^.........^.........^.........^.........^.........^....

 Card games written in Basic suffer from very slow graphics on-

 screen ... but if machine code's not your speciality, what do

 you do? Relax - the answer's here! Machine code magician, Toni

  Baker presents an amazing program to draw playing cards any-

               where on-screen - just like that!

!1.......^.........^.........^.........^........



Announcing the most amazing, stupendous, phenom-

enally  fab  (That's  enough superlatives!  Ed.)

program, designed to take your mind off into the

land  of playing cards. It's a neat little  slab

of  machine  code  (well,  quite  a  long  piece

really) which enables you to actually print pic-

tures of playing cards on-screen. But the really

cunning bit is that you can write your own  card

games program in Basic while letting my  machine

code get on with the hard work of drawing it.



!0.......^.........^.........^..

!B

PICTURE THAT!

!1.......^.........^.........^.........^........

The  nice thing about this program is that  once

you've  entered  it  into the Spectrum, all  you

have to do to call a deal up on-screen is to use

a single line of Basic like this:

!0.......^.........^.........^..

  PRINT USR card, y coordinate,

  x coordinate, cardnumber, suit

!1.......^.........^.........^.........^........

And  that's it! When the Spectrum tries to  exe-

cute  it,  nothing  will  be  PRINTed  on-screen

except  for  the  desired card ... and that  can

appear  anywhere you want (hence the need for  x

and y coordinates - as in the PRINT AT command).

Note  that  printing  cards does not in any  way

affect the normal PRINT position.

  Actually,  the program will allow a few  vari-

ations  on this theme. For example, if you  make

the  'cardnumber,  suit'  value equal to  '0,0',

you'll  get a playing card face down printed  up

on-screen;  try  '0,1' and '0,2' if you want  to

see a read and black Joker card, respectively.

  Apart  from  the  above paragraph, you  select

cards to be printed on-screen as you'd expect  -

card-number  '1'  represents an ace, '2' a  two,

and  so  on, up to '13' for a King. The  numbers

representing  the  various  suits  are  '1'  for

diamonds, '2' for clubs, '3' for hearts and  '4'

for spades. S'easy really!

  For those who know anything about machine code

(the ignorant hoards can ignore this paragraph),

the program is actually a wee bit clever (preen,

preen).  That's because all those other  numbers

(which  can,  in  fact,  be  variable  names  or

expressions like 'x+1') after the word PRINT are

not  actually  PRINTed - quite fortunate  really

because you wouldn't exactly get ecstatic over a

load of silly numbers cluttering up the  screen.

The reasons they're ignored by normal Basic are:

firstly, because the machine code routine begins

with  a  load  of POPs which have the effect  of

making  the  poor ol' Speccy "forget" what  it's

supposed to do after the word PRINT (but you  do

have to have exactly the right number or else it

freaks  out); and secondly, the system  variable

CH_ADD is adjusted so that it points to the  end

of  the statement - allowing the next  statement

to  be  carried  out  without  any  hassle.  The

program allows a couple of ROM routines to  move

CH_ADD  and evaluate the experience at the  same

time.

  The syntax of the card printing statement  has

to  be  exactly  as I've specified. It can be  a

real turn-off if you get it wrong because a line

which  has, for example, the suit number out  of

range  - or too many items after the word USR  -

can  still be entered into a Basic program.  You

won't  find  out if it's wrong until you try  to

run it.

  The  only other point worth mentioning  (which

is   actually  quite  important!)  is  that  any

program using the routine must have somewhere at

the start of the listing the line:

!0.......^.........^.........^..

  LET card=36102

!1.......^.........^.........^.........^........

The  cards  printed are eight character  squares

across  and ten character squares down - so  you

can print them anywhere on-screen that's handy!

  Have  fun with the routine. As I keep  saying,

don't  panic just because it's all been done  in

machine code. If you're not too sure how to call

the routine from Basic in your own program, have

a  look  at the example listing I've given  with

this  article.  I  look forward to hearing  what

you've  managed  to  do with it in future  Forum

columns. Bye for now!



!0.......^.........^.........^..

!B

GRAND SLAM

!2.......^.........^.........^.........^.........^.........^....

The  Basic program given here provides a quick demonstration  of

the routine at work. You can, by the way, slow down the  process

by adding a "PAUSE 25" statement somewhere between lines 60  and

80.

!0.......^.........^.........^..



   1 LET card=36102

  10 PAPER 0

  20 INK 7

  30 BORDER 0

  40 CLS

  50 FOR s=1 TO 4

  60 FOR n=1 TO 13

  70 PRINT USR card,4*s-4,2*n-2,

n,s

  80 NEXT n

  90 NEXT s



!2.......^.........^.........^.........^.........^.........^....

!B

You'll  need  a  hex loader (of which there have been many  pub-

lished  in  previous issues of YS) - or better still, a  monitor

program  -  to  type  in  this lot. Note that the data Hex  code

starts  at  8000  Hex,  and is followed immediately by the  main

program  code  at location 8C40 Hex. (Please note that the  main

program  code  requires you to type in the middle column only  -

the  last  column  provides  the source code for those using  an

assembler;  both listings show the current address in the  first

column.)  Make  sure  that you clear space in memory above  8000

Hex.

!0.......^.........^.........^..



--

NOTE

!1.......^.........^.........^.........^........

The  code actually starts at 8C4C, although  the

assembler  listing  in the mag started at  8C49;

the  intervening few bytes are used for  working

storage.  Also,  the last sentence above  should

read "... above 7FFF Hex.".

!0.......^.........^.........^..

--



!2.......^.........^.........^.........^.........^.........^....

!B

8000  FF 80 81 81 83 83 87 87  |8628  FF 01 81 BF 21 F9 E9 EF

8008  FF 1F 0F 07 83 81 C3 C3  |8630  9F 8F 87 83 81 80 80 80

8010  FF 6D 6D 0C FF FF 00 00  |8638  F0 E0 C0 81 02 02 01 3F

8018  FF B6 B6 30 FF FF 2A 2A  |8640  BA 62 23 A0 B7 30 D2 90

8020  FF FC F8 F0 E0 C0 60 80  |8648  D4 14 92 0A CA 1A 32 EF

8028  FF 01 01 03 07 0F 1F 17  |8650  31 A9 AB AB A8 AE BF 06

8030  8F 8F 87 87 C3 E3 F1 F1  |8658  23 3F 45 83 01 59 DD 7F

8038  E3 E7 CB CB 8A 8A 12 2A  |8660  81 87 9F BE F9 E7 9F FF

8040  F9 08 49 69 88 8E 80 DF  |8668  D8 CC A0 73 F9 FC 7F 3F

8048  EA 2A 2A AA 2A 2A 2A 29  |8670  7F 3F 1F 1F 8F 0F FC FC

8050  88 8C 87 83 81 98 54 24  |8678  F2 F2 CC CC 3D 3D FC FC

8058  17 17 17 FF FF FF 7F 7F  |8680  4A 91 31 38 7C 7C FE FE

8060  E8 E8 EF EF EF EF EF EE  |8688  7F BF CF E1 E7 EB ED EB

8068  12 E2 EE E9 CA 98 24 67  |8690  FF FE FC E6 D7 B6 D4 E0

8070  C0 A4 A0 D0 30 4F 11 83  |8698  88 08 08 08 88 17 21 41

8078  24 12 09 16 75 F5 06 FE  |86A0  07 07 07 07 1F F0 12 17

8080  B8 5E 01 78 3F 9F CE A6  |86A8  F8 F8 F8 FA FA 08 48 E8

8088  3F 37 E3 25 25 25 25 3D  |86B0  FE FE FC FC F8 F0 E0 C1

8090  EE EF EF EF EF EF EF EF  |86B8  27 2B 2D 6B 67 6B ED EB

8098  A9 33 B7 EF E7 FF E3 EC  |86C0  FF 80 81 83 87 8F 9F 9F

80A0  FD FA F7 EF DF BF 7F BF  |86C8  FF 0F 07 83 C1 E0 F0 F0

80A8  0E 9E 60 BF D1 EA F7 FA  |86D0  FF FF FF FF FF FF AA AA

80B0  92 AA ED EB EB 0F FD 17  |86D8  FF FF FF FF FF FF 00 0F

80B8  F1 F1 F7 F7 F7 F7 F7 F7  |86E0  FF FE FC F8 F0 E0 40 C1

80C0  FF 80 80 80 81 81 83 83  |86E8  FF 25 5B 5B 2D 55 BB 7D

80C8  FF 00 80 80 C0 C0 E0 E0  |86F0  BF BF 9D 81 83 87 80 80

80D0  FF 01 03 07 07 0F 0F 1F  |86F8  F8 F8 70 00 81 C1 02 01

80D8  FF E7 DB B1 A0 C0 80 F0  |8700  AA AA AA AA 6A 59 AC 77

80E0  FF F1 F9 FC FE 7F 3F CF  |8708  80 86 80 80 41 2F C0 87

80E8  FF 01 F1 11 11 1D 83 C5  |8710  40 40 40 20 C0 80 81 81

80F0  87 87 83 83 81 81 80 82  |8718  BB 55 2D 5B 5B 25 FF 21

80F8  F0 F0 E0 E0 C0 C0 80 80  |8720  80 80 83 9F FF BE A2 BE

8100  1F 1F 1F 1F 3F 3F 3F 3F  |8728  19 7C FD FD FD F5 F5 F9

8108  89 E9 88 88 CE C0 DF C0  |8730  AE 59 86 80 86 80 FF 9F

8110  07 C3 03 03 03 03 03 04  |8738  80 81 7E 00 66 00 FF FF

8118  E9 F1 F9 FD FF FF FF FF  |8740  F9 7F 56 56 B6 AE 6F 5F

8120  87 87 9F BF 9F 87 F7 8A  |8748  21 E1 FF F1 91 F1 79 79

8128  00 00 C0 E0 C0 03 1F 7F  |8750  B9 A7 DC D3 EF EE B5 D7

8130  3F 3F 3D 38 FD FF F8 FE  |8758  7D 7E BF BF 5F EF B7 69

8138  C0 E0 F0 CF 8C EB E3 1C  |8760  63 6C 2D CD F0 F0 FF FD

8140  0F 1F 6F C6 D8 38 3B E3  |8768  F0 7F BA BA 0A 0E F1 BC

8148  7F FF E1 F3 CF 87 87 DF  |8770  7F 9F E7 D9 D6 B7 AD 6B

8150  84 83 8D B2 C2 81 80 80  |8778  7D BF BB D7 DF 5F AF 57

8158  E7 97 9B 67 64 98 90 60  |8780  FF 80 81 83 87 8F 9F 9F

8160  FC F9 F3 E6 CC 00 FF FF  |8788  FF 02 01 81 C0 E0 F0 F0

8168  DF 9F 3F 7F FF 00 FF FF  |8790  FF 8F 9F 9F CF C3 CF 7F

8170  E3 FF E3 C0 C0 80 80 80  |8798  FF FD FA F4 F0 EF E0 C7

8178  FF FF FF 7F 0F 01 01 01  |87A0  FF 54 2A 1E 06 7E 46 5E

8180  FF 80 82 82 87 87 8F 8F  |87A8  FF 09 09 15 15 23 23 37

8188  FF 18 0C 07 03 01 80 80  |87B0  BF BF 9D 81 83 87 88 94

8190  FF 20 51 FF FF FF 8F E0  |87B8  F8 F8 70 00 80 C1 07 0E

8198  FF 00 04 8A D1 E0 FF 7F  |87C0  3F 1F 1F 3F 78 FF 81 7F

81A0  FF 08 1A 3B 7B F3 F7 F7  |87C8  C0 81 81 40 23 F0 78 84

81A8  FF 03 07 0D 99 F3 E7 EF  |87D0  47 C7 07 07 CF 0F 93 27

81B0  9F 9F 8F 8F 87 87 82 F2  |87D8  41 55 37 95 95 15 95 75

81B8  C0 C0 80 81 02 03 00 1C  |87E0  B6 C1 B7 95 8E 9C FF FF

81C0  81 B9 A1 03 13 89 F1 87  |87E8  1F 7F B3 21 41 9D 0C 94

81C8  5F 57 55 15 A5 A9 AA AA  |87F0  B0 CF F4 FB FD FE FF FF

81D0  F7 F7 57 57 53 5B 4B 9A  |87F8  5F E0 13 FC 83 7F A0 DF

81D8  EF EF EF EF EF AF 2F 2F  |8800  FF 8E F6 9E A6 FD 25 DD

81E0  90 9C 94 95 96 99 E0 89  |8808  7D F5 F5 FD F5 F5 F5 FD

81E8  17 10 5E DE 5E 5E 4F CF  |8810  98 88 88 98 E7 C0 81 B8

81F0  E4 04 FF FF FE 7C 79 73  |8818  40 40 5C 4D 95 03 C3 C7

81F8  AA 2A FF 00 7F FF 80 3E  |8820  87 FB 8D F6 00 FF 6B FF

8200  B0 BF F9 01 FD FD F9 FB  |8828  E8 F6 FB FD 00 FF 5A FF

8208  2F 2F FF FF FF FF FF FF  |8830  53 8B 8B FB 02 FC D8 F2

8210  C6 98 E0 81 87 9F FF FF  |8838  E9 C5 AB 31 39 01 15 99

8218  6F EF E7 F7 F7 F7 F7 F7  |8840  FF 80 81 83 87 8F 9F BF

8220  66 0C B9 B3 80 80 84 8E  |8848  FF 60 39 9E CF E7 F3 F9

8228  7E FE FE FC 01 01 21 71  |8850  FF 83 47 2F 9F FF FF 55

8230  F3 F7 F7 F7 E7 EF EF EF  |8858  FF 04 8A D1 E1 F7 FF 00

8238  FF FF FF FF FF FF FF FF  |8860  FF 06 04 78 F0 E0 C0 40

8240  FF 80 83 87 87 9B BF BF  |8868  FF 01 31 31 59 59 59 59

8248  FF 03 81 C0 C0 B0 F8 F8  |8870  BF BF 9D 81 83 87 80 80

8250  FF FF FF FF 7F 3F 2A 2A  |8878  F9 F9 71 01 81 C1 01 0D

8258  FF FF FF FF FF FF A0 BC  |8880  55 55 55 55 55 55 55 55

8260  FF FF FE FD F8 F4 13 F0  |8888  00 77 04 35 04 1C 99 66

8268  FF 01 03 05 CD 2D CD 0D  |8890  40 C0 40 C0 40 40 40 40

8270  BF 99 81 83 C7 A0 B0 B0  |8898  59 59 59 59 59 59 59 59

8278  F8 30 00 80 C0 00 01 07  |88A0  80 80 80 87 BF FF FF FF

8280  2A 2A 2A 2A 3A 6E AA AF  |88A8  11 12 0C 71 BF DF AF AF

8288  A0 BC A0 A7 A0 AF A0 A1  |88B0  56 AB 02 78 76 BE BB DF

8290  90 B0 90 90 10 D0 2F 49  |88B8  00 3E 81 FE AA 00 BD FB

8298  0D 0D 0D 0D 0D 1F F1 13  |88C0  80 80 BE BE 3D FB F7 F7

82A0  B3 BC B5 B2 B1 B9 B9 B8  |88C8  59 59 59 59 5B 5B 5B 5B

82A8  FF 07 B0 06 F9 FE FD F8  |88D0  F2 FF E1 E1 E1 E1 E1 FF

82B0  AE AF 6F 2F 9F 4F A7 C3  |88D8  77 77 7B 7B BD BD CD F1

82B8  A0 D9 67 B7 DA ED E7 EA  |88E0  DD DF C2 DC DF DE DE D9

82C0  E9 DC B4 6C DC BC 7C FC  |88E8  7B FB C3 3B FB 7B 7B 9B

82C8  95 95 F5 FD EF ED ED ED  |88F0  E1 EF C3 DF 87 B8 BB BB

82D0  B4 B4 B4 B6 B6 B6 B6 B6  |88F8  5B 5B 5B 5B 59 5B FF 59

82D8  F1 E3 C7 4F 5F 7F 7F 7F  |8900  00 00 00 00 00 00 00 00

82E0  EB E1 F4 F8 FA FC FC FE  |8908  00 00 00 00 00 00 00 00

82E8  ED ED ED ED 6D 6D BD 3D  |8910  00 00 00 01 03 07 7F F8

82F0  FC FC FC FC FE FE FE FE  |8918  00 00 00 80 C0 E0 FE 11

82F8  6D 6D 6D 6D 6D 6D 6D 6D  |8920  00 00 00 00 00 00 00 00

8300  FF 80 83 87 87 9B BF BF  |8928  00 00 00 00 00 00 00 00

8308  FF 00 80 C0 C0 B0 F8 F8  |8930  00 00 00 00 00 00 00 00

8310  FF 02 05 07 0F 0C 17 3C  |8938  01 01 01 01 00 00 00 00

8318  FF 92 0A 05 F8 80 B0 80  |8940  F8 C8 88 04 03 00 0F 1F

8320  FF FF FF 7F 7F 7F 7F 7F  |8948  1C 12 11 20 C0 FE 0F 07

8328  FF 01 01 81 81 C1 C1 E1  |8950  80 80 80 80 03 04 84 E4

8330  BF 99 81 83 87 8E 91 B5  |8958  00 00 00 00 00 80 80 80

8338  F8 30 01 83 C7 0F 1F 9F  |8960  00 00 00 00 00 00 00 00

8340  7C FC FC FA F7 EF DF E0  |8968  00 00 00 01 01 01 02 02

8348  C0 00 F1 03 47 8F FF 00  |8970  2B 42 80 07 0C 38 09 0A

8350  7F BF DF EF F7 FB FD 00  |8978  2F BF FC F8 F8 F8 F8 F8

8358  E1 F1 F9 FD FF FF FF FF  |8980  F3 FB FF 3F 0F 07 03 00

8360  C4 DF C4 B5 91 FF A0 A0  |8988  00 00 00 00 00 00 00 00

8368  5F 5F 6F 97 3B FD FE FF  |8990  00 00 00 00 00 00 00 00

8370  E0 F7 F6 FA FA F5 F5 EB  |8998  02 01 00 00 00 00 00 00

8378  00 FF EF EF EF EE DD DB  |89A0  0C 38 C8 08 08 08 1F 3F

8380  00 FF BF BF 60 CF BF 7F  |89A8  F0 F0 F0 F0 F0 F0 10 08

8388  5F EF F7 FF 03 F7 8F BF  |89B0  00 00 00 00 00 00 00 00

8390  FF 81 83 87 8F 9F BF FF  |89B8  00 00 00 00 00 00 00 00

8398  FF FF FF FF FF FE FD F8  |89C0  00 00 00 00 00 00 00 00

83A0  DB DB FF FF 44 44 44 44  |89C8  00 00 01 02 04 58 70 F0

83A8  B6 B5 FF FF 22 22 22 23  |89D0  5F 9F 1F 3F 3D 35 35 24

83B0  CE 24 10 48 E5 43 03 FF  |89D8  08 08 08 04 44 54 54 DC

83B8  3F FF FF FF FF FF FF FF  |89E0  00 00 00 00 00 00 00 00

83C0  FF 80 83 87 87 9B BF BF  |89E8  00 00 00 00 00 00 00 00

83C8  FF 03 81 C0 C0 B0 F8 F8  |89F0  00 00 00 00 00 00 00 00

83D0  FF 04 CA FF 7F 3F 20 3E  |89F8  E0 C0 80 40 00 00 00 00

83D8  FF 10 7C FF FF FF 01 71  |8A00  34 10 18 08 08 08 08 08

83E0  FF 43 AE FC F8 F0 50 50  |8A08  DC F8 F8 F0 F0 F0 F0 F0

83E8  FF 01 01 01 11 29 2D 2D  |8A10  00 00 00 00 00 00 00 00

83F0  BF 99 81 83 87 80 80 80  |8A18  00 00 00 00 00 00 00 00

83F8  F8 30 00 80 C0 00 00 00  |8A20  00 00 00 00 00 00 00 00

8400  20 3C 24 24 26 27 38 27  |8A28  00 00 00 00 00 00 00 00

8408  01 61 01 01 21 12 62 86  |8A30  08 08 08 48 3E 1F 0F 07

8410  50 50 50 50 50 50 A8 D4  |8A38  F0 F0 F0 F2 7C 68 50 20

8418  2D 2D 2D 2D 2D 2D 2D 2D  |8A40  00 00 00 00 00 00 00 00

8420  80 80 80 80 81 83 87 9B  |8A48  00 00 00 00 00 00 00 00

8428  00 03 1E 67 E7 E7 E7 1C  |8A50  00 00 00 00 00 00 00 00

8430  12 F8 FF 7B BA DD ED ED  |8A58  00 00 00 00 00 00 00 00

8438  0E 7F FF FF 7E 18 81 66  |8A60  03 07 0F 3E FC 00 00 00

8440  54 A8 E8 94 2E 5D DD FA  |8A68  40 20 90 4C 3F 00 00 00

8448  2D 2D 2D 2D 2D 2D AD FF  |8A70  00 00 00 00 00 00 00 00

8450  A3 C3 93 93 92 BB 93 82  |8A78  00 00 00 00 00 00 00 00

8458  7E DB DB DB 18 FF FF 00  |8A80  00 00 00 00 00 00 00 00

8460  ED F6 F6 F7 7A FA FD 73  |8A88  00 00 00 00 00 00 00 00

8468  18 81 E7 9A 42 42 BA CA  |8A90  00 00 00 00 00 00 00 01

8470  BA 77 77 F7 EF EF EF FF  |8A98  00 00 00 00 00 00 00 00

8478  2D FF 91 91 91 F1 F1 F1  |8AA0  00 00 00 00 00 00 00 01

8480  FF 80 8C 9E BF BF BF BF  |8AA8  03 07 0E 1D 3F 70 FF 8F

8488  FF 03 61 F0 F8 F8 F8 F8  |8AB0  00 00 00 00 00 00 00 00

8490  FF BA BA 82 7F 40 7C 40  |8AB8  03 06 06 0E 1E 1B 3E 36

8498  FF ED EB 0B F8 57 55 55  |8AC0  6E EF EF D8 22 C8 83 A7

84A0  FF B8 B2 67 4F 8B 13 1C  |8AC8  00 00 00 00 01 01 01 03

84A8  FF 01 05 0D 9D DD FD FD  |8AD0  69 DD E3 E2 E2 9E 9E 7E

84B0  9F 8F 87 83 81 81 82 BE  |8AD8  0E 1F 60 3B BB 3B BB 1F

84B8  F0 E0 C1 81 04 DC E0 01  |8AE0  03 03 03 07 07 07 06 06

84C0  58 80 00 DC 20 78 43 BF  |8AE8  FF C7 DB BD A5 BE FE FF

84C8  55 55 55 55 3D FD FF FF  |8AF0  5B 1F 0F A7 83 C8 E2 78

84D0  1F 13 8B EB 97 52 10 E0  |8AF8  06 06 06 06 03 03 01 01

84D8  FD FD DD 9D 1D 1D 1D 1D  |8B00  E7 E7 87 84 FB 74 34 BB

84E0  A1 FC 84 84 84 FE 9D BD  |8B08  BF DF EE 95 7B BB BD 54

84E8  0F B3 E1 F0 E8 EC EA ED  |8B10  00 00 00 00 00 00 00 00

84F0  C0 E0 F0 FB 7D 3D 1E 1E  |8B18  FC 63 3F 0F 00 00 00 00

84F8  00 00 00 FE FD FB F7 EF  |8B20  EF D7 FE 0D 0D 1E 1F 1B

8500  18 3F 7A F4 E8 D8 BC 7E  |8B28  00 00 00 00 00 00 00 00

8508  1D 1D DD 3D 0D 53 F9 71  |8B30  00 00 00 00 00 00 00 00

8510  FB F7 EF 9F FF FE FD F3  |8B38  3A 26 27 7F 00 00 00 00

8518  EE DE DF B9 77 EF EF DF  |8B40  00 00 01 03 07 0F 1F 3F

8520  8F 8F 6F 8F BF BF 99 99  |8B48  00 00 00 80 C0 E0 F0 F8

8528  5E 3D 7B F5 FD FD 99 99  |8B50  1F 0F 07 03 01 00 00 00

8530  BF DF EF F7 F7 FB FB FB  |8B58  F0 E0 C0 80 00 00 00 00

8538  21 85 CF E7 F3 F9 FD FF  |8B60  00 00 03 07 07 1B 3F 3F

8540  FF 80 8C 9E BF BF BF BF  |8B68  00 00 80 C0 C0 B0 F8 F8

8548  FF 00 60 F0 F8 F8 F8 F8  |8B70  3F 19 01 03 07 00 00 00

8550  FF 0A 15 3E 30 5F 51 BD  |8B78  FB 30 00 80 C0 00 00 00

8558  FF D6 3A 0B 03 7B 03 33  |8B80  00 00 0C 1E 3F 3F 3F 3F

8560  FF C0 F8 78 B8 BF DE DC  |8B88  00 00 60 F0 F8 F8 F8 F8

8568  FF 01 01 01 01 01 01 01  |8B90  1F 0F 07 03 01 00 00 00

8570  9F 8F 87 83 81 80 80 80  |8B98  F0 E0 C0 80 00 00 00 00

8578  F0 E1 C1 81 01 01 01 07  |8BA0  00 00 01 03 07 0F 1F 3F

8580  B1 51 70 F0 F3 F8 F8 FC  |8BA8  00 00 00 80 C0 E0 F0 F8

8588  01 C1 01 01 E3 07 8F 3F  |8BB0  3F 3F 1D 01 03 07 00 00

8590  E8 F0 F8 F8 7C BC DC EC  |8BB8  F8 F8 70 00 80 C0 00 00

8598  19 5B 3D E7 E7 3D 5B 19  |8BC0  00 10 38 7C FE 7C 38 10

85A0  80 80 87 9F FF FE FC FC  |8BC8  00 38 38 FE FE D6 10 38

85A8  19 F1 FA 84 07 E7 E7 67  |8BD0  00 6C FE FE 7C 38 10 10

85B0  FF 7F 3F 4F 95 E5 F9 FE  |8BD8  00 10 38 7C FE D6 10 38

85B8  FF FF FF FE 52 53 4F 7F  |8BE0  00 4C 52 52 52 52 4C 00

85C0  FA E9 A6 9C 78 FA FF FB  |8BE8  70 F8 0E 74 0D 74 0D F8

85C8  05 D5 4F 25 2F 39 29 29  |8BF0  F0 96 96 F0 0F 69 69 0F

85D0  F9 FB FF FA F8 F9 FB FF  |8BF8  08 3E 90 3D 98 3D A0 3D

85D8  3F A3 FC BF 3F 3F BF FF  |8C00  A8 3D B0 3D B8 3D C0 3D

85E0  F2 FE F2 7E B2 BE D2 DE  |8C08  C8 3D E0 8B 50 3E 88 3E

85E8  4F 7F 4F 7E 4D 7D 4B 7B  |8C10  58 3E 43 23 63 23 43 63

85F0  F9 C8 3A FF FB F9 F8 FA  |8C18  21 25 61 65 21 25 43 61

85F8  29 2F A1 FF BF 3F 3F BF  |8C20  65 21 25 41 45 61 65 21

8600  FF 80 8C 9E BF BF BF BF  |8C28  25 33 41 45 61 65 21 25

8608  FF 00 60 F0 F8 F8 F8 F8  |8C30  33 41 45 53 61 65 11 15

8610  FF C2 75 3C 1F 10 5E A2  |8C38  31 35 43 51 55 71 75 11

8618  FF 11 3A FC FF 15 F5 15  |8C40  15 23 31 35 51 55 63 71

8620  FF 0C B9 F1 E1 7F 7F 7F  |8C48  75 03 84 48



----------------------------------------------------------------



!B

8C4C DF       RST  #18         |8D6B 3E04     LD   A,#04

8C4D FE2C     CP   #2C         |8D6D DD21498C LD   IX,#8C49

8C4F C28A1C   JP   NZ,#1C8A    |8D71 DD7700   LD   (IX+#00),A

8C52 E7       RST  #20         |8D74 CD7F8C   CALL #8C7F

8C53 CDFB24   CALL #24FB       |8D77 010101   LD   BC,#0101

8C56 CDD52D   CALL #2DD5       |8D7A CD5E8C   CALL #8C5E

8C59 3801     JR   C,#8C5C     |8D7D D1       POP  DE

8C5B C8       RET  Z           |8D7E 1C       INC  E

8C5C CF09     RST  #08/09      |8D7F 1D       DEC  E

8C5E 2A4A8C   LD   HL,(#8C4A)  |8D80 2009     JR   NZ,#8D8B

8C61 CB0C     RRC  H           |8D82 010608   LD   BC,#0806

8C63 CB0C     RRC  H           |8D85 11F08B   LD   DE,#8BF0

8C65 CB0C     RRC  H           |8D88 C37F8C   JP   #8C7F

8C67 112000   LD   DE,#0020    |8D8B 7A       LD   A,D

8C6A 04       INC  B           |8D8C A7       AND  A

8C6B 1801     JR   #8C6E       |8D8D 2028     JR   NZ,#8DB7

8C6D 19       ADD  HL,DE       |8D8F 010608   LD   BC,#0806

8C6E 10FD     DJNZ #8C6D       |8D92 110089   LD   DE,#8900

8C70 09       ADD  HL,BC       |8D95 DD7700   LD   (IX+#00),A

8C71 5D       LD   E,L         |8D98 CD7F8C   CALL #8C7F

8C72 7C       LD   A,H         |8D9B 0600     LD   B,#00

8C73 E603     AND  #03         |8D9D 11503E   LD   DE,#3E50

8C75 F658     OR   #58         |8DA0 CDD78C   CALL #8CD7

8C77 57       LD   D,A         |8DA3 1E78     LD   E,#78

8C78 CB04     RLC  H           |8DA5 CDD78C   CALL #8CD7

8C7A CB04     RLC  H           |8DA8 1E58     LD   E,#58

8C7C CB04     RLC  H           |8DAA CDD78C   CALL #8CD7

8C7E C9       RET              |8DAD 1E28     LD   E,#28

8C7F C5       PUSH BC          |8DAF CDD78C   CALL #8CD7

8C80 41       LD   B,C         |8DB2 1E90     LD   E,#90

8C81 E5       PUSH HL          |8DB4 C3D78C   JP   #8CD7

8C82 C5       PUSH BC          |8DB7 E5       PUSH HL

8C83 E5       PUSH HL          |8DB8 D5       PUSH DE

8C84 0608     LD   B,#08       |8DB9 87       ADD  A,A

8C86 1A       LD   A,(DE)      |8DBA 6F       LD   L,A

8C87 DDCB0046 BIT  0,(IX+#00)  |8DBB 2600     LD   H,#00

8C8B 2808     JR   Z,#8C95     |8DBD 11F68B   LD   DE,#8BF6

8C8D 4F       LD   C,A         |8DC0 19       ADD  HL,DE

8C8E 3E01     LD   A,#01       |8DC1 5E       LD   E,(HL)

8C90 CB19     RR   C           |8DC2 23       INC  HL

8C92 17       RLA              |8DC3 56       LD   D,(HL)

8C93 30FB     JR   NC,#8C90    |8DC4 0600     LD   B,#00

8C95 77       LD   (HL),A      |8DC6 CDD78C   CALL #8CD7

8C96 DDCB004E BIT  1,(IX+#00)  |8DC9 D1       POP  DE

8C9A 2802     JR   Z,#8C9E     |8DCA D5       PUSH DE

8C9C 1B       DEC  DE          |8DCB 7B       LD   A,E

8C9D 1B       DEC  DE          |8DCC 87       ADD  A,A

8C9E 13       INC  DE          |8DCD 87       ADD  A,A

8C9F 24       INC  H           |8DCE 87       ADD  A,A

8CA0 10E4     DJNZ #8C86       |8DCF C6B8     ADD  A,#B8

8CA2 DDCB0056 BIT  2,(IX+#00)  |8DD1 5F       LD   E,A

8CA6 2804     JR   Z,#8CAC     |8DD2 168B     LD   D,#8B

8CA8 7B       LD   A,E         |8DD4 0601     LD   B,#01

8CA9 D608     SUB  #08         |8DD6 CDD78C   CALL #8CD7

8CAB 5F       LD   E,A         |8DD9 210401   LD   HL,#0104

8CAC E1       POP  HL          |8DDC D1       POP  DE

8CAD 23       INC  HL          |8DDD A7       AND  A

8CAE DDCB005E BIT  3,(IX+#00)  |8DDE ED52     SBC  HL,DE

8CB2 2802     JR   Z,#8CB6     |8DE0 2035     JR   NZ,#8E17

8CB4 2B       DEC  HL          |8DE2 010308   LD   BC,#0803

8CB5 2B       DEC  HL          |8DE5 11808A   LD   DE,#8A80

8CB6 C1       POP  BC          |8DE8 E1       POP  HL

8CB7 10C9     DJNZ #8C82       |8DE9 DD360000 LD   (IX+#00),#00

8CB9 E1       POP  HL          |8DED CD7F8C   CALL #8C7F

8CBA 012000   LD   BC,#0020    |8DF0 010601   LD   BC,#0106

8CBD DDCB0066 BIT  4,(IX+#00)  |8DF3 CD5E8C   CALL #8C5E

8CC1 2803     JR   Z,#8CC6     |8DF6 010308   LD   BC,#0803

8CC3 01E0FF   LD   BC,#FFE0    |8DF9 11808A   LD   DE,#8A80

8CC6 CB0C     RRC  H           |8DFC DD360009 LD   (IX+#00),#09

8CC8 CB0C     RRC  H           |8E00 CD7F8C   CALL #8C7F

8CCA CB0C     RRC  H           |8E03 010404   LD   BC,#0404

8CCC 09       ADD  HL,BC       |8E06 CD5E8C   CALL #8C5E

8CCD CB04     RLC  H           |8E09 010101   LD   BC,#0101

8CCF CB04     RLC  H           |8E0C 11E88B   LD   DE,#8BE8

8CD1 CB04     RLC  H           |8E0F DD360000 LD   (IX+#00),#00

8CD3 C1       POP  BC          |8E13 CD7F8C   CALL #8C7F

8CD4 10A9     DJNZ #8C7F       |8E16 C9       RET

8CD6 C9       RET              |8E17 7A       LD   A,D

8CD7 C5       PUSH BC          |8E18 FE0B     CP   #0B

8CD8 C5       PUSH BC          |8E1A 382E     JR   C,#8E4A

8CD9 D5       PUSH DE          |8E1C 83       ADD  A,E

8CDA 0E00     LD   C,#00       |8E1D 83       ADD  A,E

8CDC CD5E8C   CALL #8C5E       |8E1E 83       ADD  A,E

8CDF D1       POP  DE          |8E1F 21C000   LD   HL,#00C0

8CE0 010101   LD   BC,#0101    |8E22 54       LD   D,H

8CE3 DD360000 LD   (IX+#00),#00|8E23 5F       LD   E,A

8CE7 CD7F8C   CALL #8C7F       |8E24 CDA930   CALL #30A9

8CEA 1B       DEC  DE          |8E27 118075   LD   DE,#7580

8CEB C1       POP  BC          |8E2A 19       ADD  HL,DE

8CEC 3E09     LD   A,#09       |8E2B EB       EX   DE,HL

8CEE 90       SUB  B           |8E2C 010604   LD   BC,#0406

8CEF 47       LD   B,A         |8E2F E1       POP  HL

8CF0 0E07     LD   C,#07       |8E30 DD360000 LD   (IX+#00),#00

8CF2 D5       PUSH DE          |8E34 CD7F8C   CALL #8C7F

8CF3 CD5E8C   CALL #8C5E       |8E37 010105   LD   BC,#0501

8CF6 D1       POP  DE          |8E3A D5       PUSH DE

8CF7 010101   LD   BC,#0101    |8E3B CD5E8C   CALL #8C5E

8CFA DD360003 LD   (IX+#00),#03|8E3E D1       POP  DE

8CFE CD7F8C   CALL #8C7F       |8E3F 1B       DEC  DE

8D01 C1       POP  BC          |8E40 010604   LD   BC,#0406

8D02 04       INC  B           |8E43 DD360003 LD   (IX+#00),#03

8D03 C9       RET              |8E47 C37F8C   JP   #8C7F

8D04 CF09     RST  #08/09      |8E4A E1       POP  HL

8D06 11DB1F   LD   DE,#1FDB    |8E4B 7B       LD   A,E

8D09 E1       POP  HL          |8E4C 87       ADD  A,A

8D0A A7       AND  A           |8E4D 87       ADD  A,A

8D0B ED52     SBC  HL,DE       |8E4E 87       ADD  A,A

8D0D 20FA     JR   NZ,#8D09    |8E4F 87       ADD  A,A

8D0F D5       PUSH DE          |8E50 87       ADD  A,A

8D10 3E0F     LD   A,#0F       |8E51 C620     ADD  A,#20

8D12 FD9631   SUB  (IY+#31)    |8E53 6F       LD   L,A

8D15 F5       PUSH AF          |8E54 268B     LD   H,#8B

8D16 CD4C8C   CALL #8C4C       |8E56 E5       PUSH HL

8D19 C1       POP  BC          |8E57 21128C   LD   HL,#8C12

8D1A B8       CP   B           |8E5A 0600     LD   B,#00

8D1B 30E7     JR   NC,#8D04    |8E5C 4A       LD   C,D

8D1D F5       PUSH AF          |8E5D 1801     JR   #8E60

8D1E CD4C8C   CALL #8C4C       |8E5F 09       ADD  HL,BC

8D21 FE19     CP   #19         |8E60 0D       DEC  C

8D23 30DF     JR   NC,#8D04    |8E61 20FC     JR   NZ,#8E5F

8D25 4F       LD   C,A         |8E63 1E00     LD   E,#00

8D26 F1       POP  AF          |8E65 7E       LD   A,(HL)

8D27 47       LD   B,A         |8E66 FE50     CP   #50

8D28 210008   LD   HL,#0800    |8E68 380C     JR   C,#8E76

8D2B CD678C   CALL #8C67       |8E6A 1C       INC  E

8D2E 224A8C   LD   (#8C4A),HL  |8E6B 1D       DEC  E

8D31 D5       PUSH DE          |8E6C 2008     JR   NZ,#8E76

8D32 CD4C8C   CALL #8C4C       |8E6E E3       EX   (SP),HL

8D35 FE0E     CP   #0E         |8E6F 011F00   LD   BC,#001F

8D37 30CB     JR   NC,#8D04    |8E72 09       ADD  HL,BC

8D39 F5       PUSH AF          |8E73 E3       EX   (SP),HL

8D3A CD4C8C   CALL #8C4C       |8E74 1E03     LD   E,#03

8D3D FE05     CP   #05         |8E76 1F       RRA

8D3F 30C3     JR   NC,#8D04    |8E77 1F       RRA

8D41 4F       LD   C,A         |8E78 1F       RRA

8D42 F1       POP  AF          |8E79 1F       RRA

8D43 47       LD   B,A         |8E7A E60F     AND  #0F

8D44 E1       POP  HL          |8E7C 47       LD   B,A

8D45 C5       PUSH BC          |8E7D 7E       LD   A,(HL)

8D46 0C       INC  C           |8E7E E60F     AND  #0F

8D47 0D       DEC  C           |8E80 4F       LD   C,A

8D48 3E39     LD   A,#39       |8E81 23       INC  HL

8D4A 2807     JR   Z,#8D53     |8E82 DD7300   LD   (IX+#00),E

8D4C CB41     BIT  0,C         |8E85 E3       EX   (SP),HL

8D4E 2002     JR   NZ,#8D52    |8E86 D5       PUSH DE

8D50 3D       DEC  A           |8E87 E5       PUSH HL

8D51 3D       DEC  A           |8E88 CD5E8C   CALL #8C5E

8D52 3C       INC  A           |8E8B D1       POP  DE

8D53 111800   LD   DE,#0018    |8E8C D5       PUSH DE

8D56 0E0A     LD   C,#0A       |8E8D 010202   LD   BC,#0202

8D58 0608     LD   B,#08       |8E90 CD7F8C   CALL #8C7F

8D5A 77       LD   (HL),A      |8E93 C1       POP  BC

8D5B 23       INC  HL          |8E94 D1       POP  DE

8D5C 10FC     DJNZ #8D5A       |8E95 E1       POP  HL

8D5E 19       ADD  HL,DE       |8E96 C5       PUSH BC

8D5F 0D       DEC  C           |8E97 15       DEC  D

8D60 20F6     JR   NZ,#8D58    |8E98 20CB     JR   NZ,#8E65

8D62 2A4A8C   LD   HL,(#8C4A)  |8E9A E1       POP  HL

8D65 01080A   LD   BC,#0A08    |8E9B C9       RET

8D68 11003D   LD   DE,#3D00    |

!1.......^.........^.........^.........^........



!B

--

from Your Spectrum #13 (Apr.1985)

--

!$

