!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)