0001 0000 ; ************************************ 0002 0000 ; dekompilace hry ZABY pro PMD-85 0003 0000 ; 31.10.2012 disassemblace 0004 0000 ; 20.09.2013 formální úpravy textu 0005 0000 ; kontrola provedena na binární úrovni 0006 0000 ; ************************************ 0007 0000 0008 0000 ; ********************************************** 0009 0000 ; známé chyby: 0010 0000 ; 7b65h - chyba v testování nenulového SCORE 0011 0000 ; 7bf3h - invalidní kód 81h fce biosu inklav 0012 0000 ; mimo PMD 85-1 vykazuje chyby při editaci jména 0013 0000 ; ********************************************** 0014 0000 0015 0000 ; ************************************ 0016 0000 ; definice procedur a proměnných BIOSu 0017 0000 ; ************************************ 0018 0000 0019 0000 prnpos .equ 0c03eh 0020 0000 prnchr .equ 8500h 0021 0000 inklav .equ 84a1h 0022 0000 0023 0000 ; ******************************************** 0024 0000 ; zavaděč - ručně spouštěný příkazem JUMP 1500 0025 0000 ; ******************************************** 0026 0000 0027 1500 .org 1500h 0028 1500 0029 1500 21 00 10 lxi h,1000h 0030 1503 11 00 70 lxi d,7000h 0031 1506 7E ZAVAD: mov a,m 0032 1507 12 stax d 0033 1508 23 inx h ; funkčně zavaděč přenese 0034 1509 13 inx d ; oblast 1600h - 2002h 0035 150A 7C mov a,h ; na adresy 7600 - 8002h 0036 150B FE 20 cpi 20h 0037 150D C2 06 15 jnz ZAVAD 0038 1510 0039 1510 00 00 00 00 .db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0039 1514 00 00 00 00 0039 1518 00 00 00 00 0039 151C 00 00 00 00 0040 1520 00 00 00 00 .db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0040 1524 00 00 00 00 0040 1528 00 00 00 00 0040 152C 00 00 00 00 0041 1530 00 00 00 00 .db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0041 1534 00 00 00 00 0041 1538 00 00 00 00 0041 153C 00 00 00 00 0042 1540 00 00 00 00 .db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0042 1544 00 00 00 00 0042 1548 00 00 00 00 0042 154C 00 00 00 00 0043 1550 00 00 00 00 .db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0043 1554 00 00 00 00 0043 1558 00 00 00 00 0043 155C 00 00 00 00 0044 1560 00 00 00 00 .db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0044 1564 00 00 00 00 0044 1568 00 00 00 00 0044 156C 00 00 00 00 0045 1570 00 00 00 00 .db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0045 1574 00 00 00 00 0045 1578 00 00 00 00 0045 157C 00 00 00 00 0046 1580 00 00 00 00 .db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0046 1584 00 00 00 00 0046 1588 00 00 00 00 0046 158C 00 00 00 00 0047 1590 00 00 00 00 .db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0047 1594 00 00 00 00 0047 1598 00 00 00 00 0047 159C 00 00 00 00 0048 15A0 00 00 00 00 .db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0048 15A4 00 00 00 00 0048 15A8 00 00 00 00 0048 15AC 00 00 00 00 0049 15B0 00 00 00 00 .db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0049 15B4 00 00 00 00 0049 15B8 00 00 00 00 0049 15BC 00 00 00 00 0050 15C0 00 00 00 00 .db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0050 15C4 00 00 00 00 0050 15C8 00 00 00 00 0050 15CC 00 00 00 00 0051 15D0 00 00 00 00 .db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0051 15D4 00 00 00 00 0051 15D8 00 00 00 00 0051 15DC 00 00 00 00 0052 15E0 00 00 00 00 .db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0052 15E4 00 00 00 00 0052 15E8 00 00 00 00 0052 15EC 00 00 00 00 0053 15F0 00 00 00 00 .db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,79h 0053 15F4 00 00 00 00 0053 15F8 00 00 00 00 0053 15FC 00 00 00 79 0054 1600 0055 1600 ; Ptáte se, kde je rozumné pokračování 0056 1600 ; tohoto kódu? Odpověď je úplně na konci.. 0057 1600 0058 1600 ; *********************************** 0059 1600 ; POZOR! zbytek programu zkompilovat 0060 1600 ; od adresy 7600h po 8002h a následně 0061 1600 ; nakopírovat od adresy 1600h 0062 1600 ; *********************************** 0063 1600 0064 7600 .org 7600h 0065 7600 0066 7600 ; ************ 0067 7600 ; HALL OF FAME 0068 7600 ; ************ 0069 7600 0070 7600 50 4D 44 2D HALLOF: .db "PMD-85 " 0070 7604 38 35 20 20 0070 7608 20 20 20 20 0070 760C 20 20 0071 760E 00 00 .dw 0 0072 7610 50 4D 44 2D .db "PMD-85 " 0072 7614 38 35 20 20 0072 7618 20 20 20 20 0072 761C 20 20 0073 761E 00 00 .dw 0 0074 7620 50 4D 44 2D .db "PMD-85 " 0074 7624 38 35 20 20 0074 7628 20 20 20 20 0074 762C 20 20 0075 762E 00 00 .dw 0 0076 7630 50 4D 44 2D .db "PMD-85 " 0076 7634 38 35 20 20 0076 7638 20 20 20 20 0076 763C 20 20 0077 763E 00 00 .dw 0 0078 7640 50 4D 44 2D .db "PMD-85 " 0078 7644 38 35 20 20 0078 7648 20 20 20 20 0078 764C 20 20 0079 764E 00 00 .dw 0 0080 7650 50 4D 44 2D .db "PMD-85 " 0080 7654 38 35 20 20 0080 7658 20 20 20 20 0080 765C 20 20 0081 765E 00 00 .dw 0 0082 7660 50 4D 44 2D .db "PMD-85 " 0082 7664 38 35 20 20 0082 7668 20 20 20 20 0082 766C 20 20 0083 766E 00 00 .dw 0 0084 7670 50 4D 44 2D .db "PMD-85 " 0084 7674 38 35 20 20 0084 7678 20 20 20 20 0084 767C 20 20 0085 767E 00 00 .dw 0 0086 7680 50 4D 44 2D .db "PMD-85 " 0086 7684 38 35 20 20 0086 7688 20 20 20 20 0086 768C 20 20 0087 768E 00 00 .dw 0 0088 7690 50 4D 44 2D .db "PMD-85 " 0088 7694 38 35 20 20 0088 7698 20 20 20 20 0088 769C 20 20 0089 769E 00 00 .dw 0 0090 76A0 50 4D 44 2D .db "PMD-85 " 0090 76A4 38 35 20 20 0090 76A8 20 20 20 20 0090 76AC 20 20 0091 76AE 00 00 .dw 0 0092 76B0 50 4D 44 2D .db "PMD-85 " 0092 76B4 38 35 20 20 0092 76B8 20 20 20 20 0092 76BC 20 20 0093 76BE 00 00 .dw 0 0094 76C0 50 4D 44 2D .db "PMD-85 " 0094 76C4 38 35 20 20 0094 76C8 20 20 20 20 0094 76CC 20 20 0095 76CE 00 00 .dw 0 0096 76D0 50 4D 44 2D .db "PMD-85 " 0096 76D4 38 35 20 20 0096 76D8 20 20 20 20 0096 76DC 20 20 0097 76DE 00 00 .dw 0 0098 76E0 50 4D 44 2D .db "PMD-85 " 0098 76E4 38 35 20 20 0098 76E8 20 20 20 20 0098 76EC 20 20 0099 76EE 00 00 .dw 0 0100 76F0 50 4D 44 2D .db "PMD-85 " 0100 76F4 38 35 20 20 0100 76F8 20 20 20 20 0100 76FC 20 20 0101 76FE 00 00 .dw 0 0102 7700 50 4D 44 2D .db "PMD-85 " 0102 7704 38 35 20 20 0102 7708 20 20 20 20 0102 770C 20 20 0103 770E 00 00 HALL17: .dw 0 0104 7710 50 4D 44 2D .db "PMD-85 " 0104 7714 38 35 20 20 0104 7718 20 20 20 20 0104 771C 20 20 0105 771E 00 00 .dw 0 0106 7720 0107 7720 ; *********************************************** 0108 7720 ; zvukový engine: 7720h SNDCHR - sample při skoku 0109 7720 ; 7f3ch SNDQUI - sample "ticha" 0110 7720 ; 7f42h SNDMUS - sample hudby 0111 7720 ; 0112 7720 ; 772ah SNDNXT - adresa dalšího sample 0113 7720 ; 7f3ah SNDPTR - ukazatel do přehrávaného sample 0114 7720 ; 7f40h SNDREL - reload hodnota pro 772ah/7f3ah 0115 7720 ; *********************************************** 0116 7720 0117 7720 ; ********************* 0118 7720 ; sample při skoku žáby 0119 7720 ; ********************* 0120 7720 0121 7720 01 20 SNDCHR: .db 001h,020h 0122 7722 04 10 .db 004h,010h 0123 7724 08 18 .db 008h,018h 0124 7726 02 20 .db 002h,020h 0125 7728 00 00 .db 000h,000h ; konec samplu 0126 772A 0127 772A ; ******** 0128 772A ; proměnné 0129 772A ; ******** 0130 772A 0131 772A 42 7F SNDNXT: .dw SNDMUS ; záčátek dalšího samplu 0132 772C ; (až dohraje ten aktuální) 0133 772C 00 FRGLIV: .db 0 ; 00 = žába v zásobníku 0134 772D ; 01 = žába mezi můstky 0135 772D 26 00 FRGSTK: .dw 0026h ; kurzor v zásobníku žab 0136 772F 0137 772F ; ***************************** 0138 772F ; kresba plovoucího můstku 0139 772F ; na adrese HL o šířce ACC byte 0140 772F ; ***************************** 0141 772F 0142 772F E5 MUSTEK: push h 0143 7730 06 3F mvi b,3fh 0144 7732 4F mov c,a 0145 7733 70 MUSTE1: mov m,b 0146 7734 23 inx h 0147 7735 0D dcr c 0148 7736 C2 33 77 jnz MUSTE1 0149 7739 E1 pop h 0150 773A 11 80 FF lxi d,-128 0151 773D 19 dad d 0152 773E 70 MUSTE2: mov m,b 0153 773F 23 inx h 0154 7740 3D dcr a 0155 7741 C2 3E 77 jnz MUSTE2 0156 7744 C9 ret 0157 7745 0158 7745 ; ****************************** 0159 7745 ; test klávesové řady K0-K11 0160 7745 ; ACC udává číslo testovaného Kx 0161 7745 ; ****************************** 0162 7745 0163 7745 D3 F4 INKEY: out 0f4h 0164 7747 DB F5 in 0f5h 0165 7749 E6 01 ani 1 0166 774B C9 ret 0167 774C 0168 774C ; ****************************** 0169 774C ; proměnná - úschova registru SP 0170 774C ; ****************************** 0171 774C 0172 774C 00 00 STKTMP: .dw 0 0173 774E 0174 774E ; *************** 0175 774E ; výmaz obrazovky 0176 774E ; *************** 0177 774E 0178 774E 21 00 00 CLS: lxi h,0 0179 7751 54 mov d,h 0180 7752 5D mov e,l 0181 7753 39 dad sp 0182 7754 22 4C 77 shld STKTMP 0183 7757 31 F0 FF lxi sp,0fff0h 0184 775A 06 00 mvi b,0 0185 775C 0E 04 CLSlo1: mvi c,48/6/2 0186 775E D5 CLSlo2: push d 0187 775F D5 push d 0188 7760 D5 push d 0189 7761 D5 push d 0190 7762 D5 push d 0191 7763 D5 push d 0192 7764 0D dcr c 0193 7765 C2 5E 77 jnz CLSlo2 0194 7768 21 F0 FF lxi h,-16 0195 776B 39 dad sp 0196 776C F9 sphl 0197 776D 05 dcr b 0198 776E C2 5C 77 jnz CLSlo1 0199 7771 2A 4C 77 lhld STKTMP 0200 7774 F9 sphl 0201 7775 C9 ret 0202 7776 0203 7776 ; ******************************** 0204 7776 ; iniciační proměnná pro generátor 0205 7776 ; ******************************** 0206 7776 0207 7776 00 SEED: .db 0 ; RND seed 0208 7777 0209 7777 ; ****************************************** 0210 7777 ; generátor pseudonáhodné posloupnosti 0211 7777 ; z proměnné SEED vypočte její novou hodnotu 0212 7777 ; dle vztahu (89 x SEED +0d9h) mod 256 0213 7777 ; ****************************************** 0214 7777 0215 7777 C5 GetRND: push b 0216 7778 E5 push h 0217 7779 06 00 mvi b,0 0218 777B 21 00 00 lxi h,0 0219 777E 3A 76 77 lda SEED 0220 7781 4F mov c,a 0221 7782 09 dad b 0222 7783 A7 ana a 0223 7784 17 ral 0224 7785 A7 ana a 0225 7786 17 ral 0226 7787 A7 ana a 0227 7788 17 ral 0228 7789 4F mov c,a 0229 778A 09 dad b 0230 778B A7 ana a 0231 778C 17 ral 0232 778D 4F mov c,a 0233 778E 09 dad b 0234 778F A7 ana a 0235 7790 17 ral 0236 7791 A7 ana a 0237 7792 17 ral 0238 7793 4F mov c,a 0239 7794 09 dad b 0240 7795 7D mov a,l 0241 7796 C6 D9 adi 0d9h 0242 7798 32 76 77 sta SEED 0243 779B E1 pop h 0244 779C C1 pop b 0245 779D C9 ret 0246 779E 0247 779E ; ******** 0248 779E ; proměnné 0249 779E ; ******** 0250 779E 0251 779E 00 .db 0 ; nepoužito 0252 779F 18 F4 FRGADR: .dw 0f418h ; adresa žáby 0253 77A1 0254 77A1 ; ************ 0255 77A1 ; vymazat žábu 0256 77A1 ; ************ 0257 77A1 0258 77A1 AF EXFROG: xra a 0259 77A2 11 C0 FF lxi d,-64 0260 77A5 19 dad d 0261 77A6 19 dad d 0262 77A7 11 BE FF lxi d,-66 0263 77AA 19 dad d 0264 77AB 23 inx h 0265 77AC 77 mov m,a ; 1. 0266 77AD 23 inx h 0267 77AE 77 mov m,a 0268 77AF 23 inx h 0269 77B0 77 mov m,a 0270 77B1 19 dad d 0271 77B2 77 mov m,a ; 2. 0272 77B3 23 inx h 0273 77B4 77 mov m,a 0274 77B5 23 inx h 0275 77B6 77 mov m,a 0276 77B7 19 dad d 0277 77B8 77 mov m,a ; 3. 0278 77B9 23 inx h 0279 77BA 77 mov m,a 0280 77BB 23 inx h 0281 77BC 77 mov m,a 0282 77BD 19 dad d 0283 77BE 77 mov m,a ; 4. 0284 77BF 23 inx h 0285 77C0 77 mov m,a 0286 77C1 23 inx h 0287 77C2 77 mov m,a 0288 77C3 19 dad d 0289 77C4 77 mov m,a ; 5. 0290 77C5 23 inx h 0291 77C6 77 mov m,a 0292 77C7 23 inx h 0293 77C8 77 mov m,a 0294 77C9 19 dad d 0295 77CA 77 mov m,a ; 6. 0296 77CB 23 inx h 0297 77CC 77 mov m,a 0298 77CD 23 inx h 0299 77CE 77 mov m,a 0300 77CF 19 dad d 0301 77D0 77 mov m,a ; 7. 0302 77D1 23 inx h 0303 77D2 77 mov m,a 0304 77D3 23 inx h 0305 77D4 77 mov m,a 0306 77D5 19 dad d 0307 77D6 77 mov m,a ; 8. 0308 77D7 23 inx h 0309 77D8 77 mov m,a 0310 77D9 23 inx h 0311 77DA 77 mov m,a 0312 77DB 19 dad d 0313 77DC 77 mov m,a ; 9. 0314 77DD 23 inx h 0315 77DE 77 mov m,a 0316 77DF 23 inx h 0317 77E0 77 mov m,a 0318 77E1 0319 77E1 32 2C 77 sta FRGLIV 0320 77E4 2A 2D 77 lhld FRGSTK 0321 77E7 22 9F 77 shld FRGADR 0322 77EA 11 FB FF lxi d,-5 0323 77ED 19 dad d 0324 77EE 22 2D 77 shld FRGSTK 0325 77F1 C9 ret 0326 77F2 0327 77F2 ; ****************** 0328 77F2 ; fáze žáby v pohybu 0329 77F2 ; ****************** 0330 77F2 0331 77F2 D5 JMFROG: push d 0332 77F3 AF xra a 0333 77F4 11 C0 FF lxi d,-64 0334 77F7 19 dad d 0335 77F8 19 dad d 0336 77F9 11 BE FF lxi d,-66 0337 77FC 19 dad d 0338 77FD 23 inx h 0339 77FE 77 mov m,a ; ...xx.xxxxxx.xx... 0340 77FF 23 inx h ; ..x..x......x..x.. 0341 7800 77 mov m,a ; ..x..x......x..x.. 0342 7801 23 inx h ; .x.xx........xx.x. 0343 7802 77 mov m,a ; .x...xxxxxxxx...x. 0344 7803 19 dad d ; ..xx..........xx.. 0345 7804 77 mov m,a ; ....xxx....xxx.... 0346 7805 23 inx h ; .x....xxxxxx....x. 0347 7806 77 mov m,a ; ..xx.x......x.xx.. 0348 7807 23 inx h ; .x..xx......xx..x. 0349 7808 77 mov m,a ; .....x......x..... 0350 7809 19 dad d ; ....xx......xx.... 0351 780A 77 mov m,a ; ...x..xxxxxx..x... 0352 780B 23 inx h ; ..x............x.. 0353 780C 77 mov m,a ; ...x..........x... 0354 780D 23 inx h ; ....x........x.... 0355 780E 77 mov m,a ; xxxxx........xxxxx 0356 780F 19 dad d ; .................. 0357 7810 36 1F mvi m,1fh ; .................. 0358 7812 23 inx h ; .................. 0359 7813 36 00 mvi m,0 0360 7815 23 inx h 0361 7816 36 3E mvi m,3eh 0362 7818 19 dad d 0363 7819 36 10 mvi m,10h ; 5. 0364 781B 23 inx h 0365 781C 36 00 mvi m,0 0366 781E 23 inx h 0367 781F 36 02 mvi m,2 0368 7821 19 dad d 0369 7822 36 08 mvi m,8 ; 6. 0370 7824 23 inx h 0371 7825 36 00 mvi m,0 0372 7827 23 inx h 0373 7828 36 04 mvi m,4 0374 782A 19 dad d 0375 782B 36 04 mvi m,4 ; 7. 0376 782D 23 inx h 0377 782E 36 00 mvi m,0 0378 7830 23 inx h 0379 7831 36 08 mvi m,8 0380 7833 19 dad d 0381 7834 36 08 mvi m,8 ; 8. 0382 7836 23 inx h 0383 7837 36 3F mvi m,3fh 0384 7839 23 inx h 0385 783A 36 04 mvi m,4 0386 783C 19 dad d 0387 783D 36 30 mvi m,30h ; 9. 0388 783F 23 inx h 0389 7840 36 00 mvi m,0 0390 7842 23 inx h 0391 7843 36 03 mvi m,3 0392 7845 19 dad d 0393 7846 36 20 mvi m,20h ; 10. 0394 7848 23 inx h 0395 7849 36 00 mvi m,0 0396 784B 23 inx h 0397 784C 36 01 mvi m,1 0398 784E 19 dad d 0399 784F 36 32 mvi m,32h ; 11. 0400 7851 23 inx h 0401 7852 36 00 mvi m,0 0402 7854 23 inx h 0403 7855 36 13 mvi m,13h 0404 7857 19 dad d 0405 7858 36 2C mvi m,2ch ; 12. 0406 785A 23 inx h 0407 785B 36 00 mvi m,0 0408 785D 23 inx h 0409 785E 36 0D mvi m,0dh 0410 7860 19 dad d 0411 7861 36 02 mvi m,2 ; 13. 0412 7863 23 inx h 0413 7864 36 3F mvi m,3fh 0414 7866 23 inx h 0415 7867 36 10 mvi m,10h 0416 7869 19 dad d 0417 786A 36 30 mvi m,30h ; 14. 0418 786C 23 inx h 0419 786D 36 21 mvi m,21h 0420 786F 23 inx h 0421 7870 36 03 mvi m,3 0422 7872 19 dad d 0423 7873 36 0C mvi m,0ch ; 15. 0424 7875 23 inx h 0425 7876 36 00 mvi m,0 0426 7878 23 inx h 0427 7879 36 0C mvi m,0ch 0428 787B 19 dad d 0429 787C 36 22 mvi m,22h ; 16. 0430 787E 23 inx h 0431 787F 36 3F mvi m,3fh 0432 7881 23 inx h 0433 7882 36 11 mvi m,11h 0434 7884 19 dad d 0435 7885 36 1A mvi m,1ah ; 17. 0436 7887 23 inx h 0437 7888 36 00 mvi m,0 0438 788A 23 inx h 0439 788B 36 16 mvi m,16h 0440 788D 19 dad d 0441 788E 36 24 mvi m,24h ; 18. 0442 7890 23 inx h 0443 7891 36 00 mvi m,0 0444 7893 23 inx h 0445 7894 36 09 mvi m,9 0446 7896 19 dad d 0447 7897 36 24 mvi m,24h ; 19. 0448 7899 23 inx h 0449 789A 36 00 mvi m,0 0450 789C 23 inx h 0451 789D 36 09 mvi m,9 0452 789F 19 dad d 0453 78A0 36 18 mvi m,18h ; 20. 0454 78A2 23 inx h 0455 78A3 36 3F mvi m,3fh 0456 78A5 23 inx h 0457 78A6 36 06 mvi m,6 0458 78A8 D1 pop d 0459 78A9 C9 ret 0460 78AA 0461 78AA ; *********************** 0462 78AA ; nakreslí statickou žábu 0463 78AA ; *********************** 0464 78AA 0465 78AA 11 7F 04 STFROG: lxi d,047fh 0466 78AD 19 dad d 0467 78AE 11 BE FF lxi d,-66 ; nejprve vymazat pozici pod žábou 0468 78B1 AF xra a ; o šířce 3x6 = 18 pixelů 0469 78B2 77 mov m,a ; a výšce rovněž 18 pixelů 0470 78B3 23 inx h 0471 78B4 77 mov m,a 0472 78B5 23 inx h 0473 78B6 77 mov m,a ; 1 0474 78B7 19 dad d 0475 78B8 77 mov m,a 0476 78B9 23 inx h 0477 78BA 77 mov m,a 0478 78BB 23 inx h 0479 78BC 77 mov m,a ; 2 0480 78BD 19 dad d 0481 78BE 77 mov m,a 0482 78BF 23 inx h 0483 78C0 77 mov m,a 0484 78C1 23 inx h 0485 78C2 77 mov m,a ; 3 0486 78C3 19 dad d 0487 78C4 77 mov m,a 0488 78C5 23 inx h 0489 78C6 77 mov m,a 0490 78C7 23 inx h 0491 78C8 77 mov m,a ; 4 0492 78C9 19 dad d 0493 78CA 77 mov m,a 0494 78CB 23 inx h 0495 78CC 77 mov m,a 0496 78CD 23 inx h 0497 78CE 77 mov m,a ; 5 0498 78CF 19 dad d 0499 78D0 77 mov m,a 0500 78D1 23 inx h 0501 78D2 77 mov m,a 0502 78D3 23 inx h 0503 78D4 77 mov m,a ; 6 0504 78D5 19 dad d 0505 78D6 77 mov m,a 0506 78D7 23 inx h 0507 78D8 77 mov m,a 0508 78D9 23 inx h 0509 78DA 77 mov m,a ; 7 0510 78DB 19 dad d 0511 78DC 77 mov m,a 0512 78DD 23 inx h 0513 78DE 77 mov m,a 0514 78DF 23 inx h 0515 78E0 77 mov m,a ; 8 0516 78E1 19 dad d 0517 78E2 77 mov m,a 0518 78E3 23 inx h 0519 78E4 77 mov m,a 0520 78E5 23 inx h 0521 78E6 77 mov m,a ; 9 0522 78E7 19 dad d 0523 78E8 77 mov m,a 0524 78E9 23 inx h 0525 78EA 77 mov m,a 0526 78EB 23 inx h 0527 78EC 77 mov m,a ; 10 0528 78ED 19 dad d 0529 78EE 77 mov m,a 0530 78EF 23 inx h 0531 78F0 77 mov m,a 0532 78F1 23 inx h 0533 78F2 77 mov m,a ; 11 0534 78F3 19 dad d 0535 78F4 77 mov m,a 0536 78F5 23 inx h 0537 78F6 77 mov m,a 0538 78F7 23 inx h 0539 78F8 77 mov m,a ; 12 0540 78F9 19 dad d 0541 78FA 77 mov m,a 0542 78FB 23 inx h 0543 78FC 77 mov m,a 0544 78FD 23 inx h 0545 78FE 77 mov m,a ; 13 0546 78FF 19 dad d 0547 7900 77 mov m,a 0548 7901 23 inx h 0549 7902 77 mov m,a 0550 7903 23 inx h 0551 7904 77 mov m,a ; 14 0552 7905 19 dad d 0553 7906 77 mov m,a 0554 7907 23 inx h 0555 7908 77 mov m,a 0556 7909 23 inx h 0557 790A 77 mov m,a ; 15 0558 790B 19 dad d 0559 790C 77 mov m,a 0560 790D 23 inx h 0561 790E 77 mov m,a 0562 790F 23 inx h 0563 7910 77 mov m,a ; 16 0564 7911 19 dad d 0565 7912 77 mov m,a 0566 7913 23 inx h 0567 7914 77 mov m,a 0568 7915 23 inx h 0569 7916 77 mov m,a ; 17 0570 7917 19 dad d 0571 7918 77 mov m,a 0572 7919 23 inx h 0573 791A 77 mov m,a 0574 791B 23 inx h 0575 791C 77 mov m,a ; 18 0576 791D 19 dad d 0577 791E 0578 791E 13 inx d 0579 791F 13 inx d ; DE = ffc0h 0580 7920 19 dad d 0581 7921 19 dad d 0582 7922 19 dad d 0583 7923 0584 7923 11 BE FF lxi d,-66 ; začínáme kreslit žábu 0585 7926 36 1F mvi m,1fh 0586 7928 23 inx h ; ...xx.xxxxxx.xx... 0587 7929 36 00 mvi m,0 ; ..x..x......x..x.. 0588 792B 23 inx h ; ..x..x......x..x.. 0589 792C 36 3E mvi m,3eh ; .x.xx........xx.x. 0590 792E 19 dad d ; xx...xxxxxxxx...xx 0591 792F 36 0C mvi m,0ch ; x.xx..........xx.x 0592 7931 23 inx h ; .x..xxx....xxx..x. 0593 7932 36 3F mvi m,3fh ; ..xx..xxxxxx..xx.. 0594 7934 23 inx h ; xxxxx........xxxxx 0595 7935 36 0C mvi m,0ch 0596 7937 19 dad d 0597 7938 36 32 mvi m,32h ; 3. 0598 793A 23 inx h 0599 793B 36 21 mvi m,21h 0600 793D 23 inx h 0601 793E 36 13 mvi m,13h 0602 7940 19 dad d 0603 7941 36 0D mvi m,0dh ; 4. 0604 7943 23 inx h 0605 7944 36 00 mvi m,0 0606 7946 23 inx h 0607 7947 36 2C mvi m,2ch 0608 7949 19 dad d 0609 794A 36 23 mvi m,23h ; 5. 0610 794C 23 inx h 0611 794D 36 3F mvi m,3fh 0612 794F 23 inx h 0613 7950 36 31 mvi m,31h 0614 7952 19 dad d 0615 7953 36 1A mvi m,1ah ; 6. 0616 7955 23 inx h 0617 7956 36 00 mvi m,0 0618 7958 23 inx h 0619 7959 36 16 mvi m,16h 0620 795B 19 dad d 0621 795C 36 24 mvi m,24h ; 7. 0622 795E 23 inx h 0623 795F 36 00 mvi m,0 0624 7961 23 inx h 0625 7962 36 09 mvi m,9 0626 7964 19 dad d 0627 7965 36 24 mvi m,24h ; 8. 0628 7967 23 inx h 0629 7968 36 00 mvi m,0 0630 796A 23 inx h 0631 796B 36 09 mvi m,9 0632 796D 19 dad d 0633 796E 36 18 mvi m,18h ; 9. 0634 7970 23 inx h 0635 7971 36 3F mvi m,3fh 0636 7973 23 inx h 0637 7974 36 06 mvi m,6 0638 7976 C9 ret 0639 7977 0640 7977 ; **************************** 0641 7977 ; flek po špatně umístěné žábě 0642 7977 ; **************************** 0643 7977 0644 7977 11 7F 04 KOFROG: lxi d,047fh 0645 797A 19 dad d 0646 797B 11 BE FF lxi d,-66 0647 797E AF xra a 0648 797F 77 mov m,a ; 1. 0649 7980 23 inx h 0650 7981 77 mov m,a 0651 7982 23 inx h 0652 7983 77 mov m,a 0653 7984 19 dad d 0654 7985 77 mov m,a ; 2. 0655 7986 23 inx h 0656 7987 77 mov m,a 0657 7988 23 inx h 0658 7989 77 mov m,a 0659 798A 19 dad d 0660 798B 77 mov m,a ; 3. 0661 798C 23 inx h 0662 798D 77 mov m,a 0663 798E 23 inx h 0664 798F 77 mov m,a 0665 7990 19 dad d 0666 7991 77 mov m,a ; 4. 0667 7992 23 inx h 0668 7993 77 mov m,a 0669 7994 23 inx h 0670 7995 77 mov m,a 0671 7996 19 dad d 0672 7997 77 mov m,a ; 5. 0673 7998 23 inx h 0674 7999 77 mov m,a 0675 799A 23 inx h 0676 799B 77 mov m,a 0677 799C 19 dad d 0678 799D 77 mov m,a ; 6. 0679 799E 23 inx h 0680 799F 77 mov m,a 0681 79A0 23 inx h 0682 79A1 77 mov m,a 0683 79A2 19 dad d 0684 79A3 77 mov m,a ; 7. 0685 79A4 23 inx h 0686 79A5 77 mov m,a 0687 79A6 23 inx h 0688 79A7 77 mov m,a 0689 79A8 19 dad d 0690 79A9 77 mov m,a ; 8. 0691 79AA 23 inx h 0692 79AB 77 mov m,a 0693 79AC 23 inx h 0694 79AD 77 mov m,a 0695 79AE 19 dad d 0696 79AF 77 mov m,a ; 9. 0697 79B0 23 inx h 0698 79B1 77 mov m,a 0699 79B2 23 inx h 0700 79B3 77 mov m,a 0701 79B4 19 dad d 0702 79B5 77 mov m,a ; 10. 0703 79B6 23 inx h 0704 79B7 77 mov m,a 0705 79B8 23 inx h 0706 79B9 77 mov m,a 0707 79BA 19 dad d 0708 79BB 77 mov m,a ; 11. 0709 79BC 23 inx h 0710 79BD 77 mov m,a 0711 79BE 23 inx h 0712 79BF 77 mov m,a 0713 79C0 19 dad d 0714 79C1 77 mov m,a ; 12. 0715 79C2 23 inx h 0716 79C3 77 mov m,a 0717 79C4 23 inx h 0718 79C5 77 mov m,a 0719 79C6 19 dad d 0720 79C7 77 mov m,a ; 13. 0721 79C8 23 inx h 0722 79C9 77 mov m,a 0723 79CA 23 inx h 0724 79CB 77 mov m,a 0725 79CC 19 dad d 0726 79CD 77 mov m,a ; 14. 0727 79CE 23 inx h 0728 79CF 77 mov m,a 0729 79D0 23 inx h 0730 79D1 77 mov m,a 0731 79D2 19 dad d 0732 79D3 77 mov m,a ; 15. 0733 79D4 23 inx h 0734 79D5 77 mov m,a 0735 79D6 23 inx h 0736 79D7 77 mov m,a 0737 79D8 19 dad d 0738 79D9 77 mov m,a ; 16. 0739 79DA 23 inx h 0740 79DB 77 mov m,a 0741 79DC 23 inx h 0742 79DD 77 mov m,a 0743 79DE 19 dad d 0744 79DF 77 mov m,a ; 17. 0745 79E0 23 inx h 0746 79E1 77 mov m,a 0747 79E2 23 inx h 0748 79E3 77 mov m,a 0749 79E4 19 dad d 0750 79E5 77 mov m,a ; 18. 0751 79E6 23 inx h 0752 79E7 77 mov m,a 0753 79E8 23 inx h 0754 79E9 77 mov m,a 0755 79EA 0756 79EA 19 dad d 0757 79EB 13 inx d 0758 79EC 13 inx d 0759 79ED 19 dad d 0760 79EE 19 dad d 0761 79EF 19 dad d 0762 79F0 11 BE FF lxi d,-66 0763 79F3 36 00 mvi m,0 ; 1. 0764 79F5 23 inx h 0765 79F6 36 0C mvi m,0ch 0766 79F8 23 inx h 0767 79F9 36 00 mvi m,0 0768 79FB 19 dad d 0769 79FC 36 00 mvi m,0 ; 2. 0770 79FE 23 inx h 0771 79FF 36 1E mvi m,1eh 0772 7A01 23 inx h 0773 7A02 36 00 mvi m,0 0774 7A04 19 dad d 0775 7A05 36 00 mvi m,0 ; ........xx.. 0776 7A07 23 inx h ; .......xxxx....... 0777 7A08 36 0C mvi m,0ch ; ........xx........ 0778 7A0A C9 ret 0779 7A0B 0780 7A0B ; ************************* 0781 7A0B ; posun řady můstků doprava 0782 7A0B ; ************************* 0783 7A0B 0784 7A0B 21 38 7F To_RGT: lxi h,FRQLEN 0785 7A0E 35 dcr m 0786 7A0F C2 34 7A jnz RIGHT3 0787 7A12 2A 3A 7F RIGHT1: lhld SNDPTR 0788 7A15 7E mov a,m 0789 7A16 A7 ana a 0790 7A17 C2 29 7A jnz RIGHT2 0791 7A1A 2A 2A 77 lhld SNDNXT 0792 7A1D 22 3A 7F shld SNDPTR 0793 7A20 2A 40 7F lhld SNDREL 0794 7A23 22 2A 77 shld SNDNXT 0795 7A26 C3 12 7A jmp RIGHT1 0796 7A29 0797 7A29 7E RIGHT2: mov a,m 0798 7A2A 32 38 7F sta FRQLEN 0799 7A2D 23 inx h 0800 7A2E 46 mov b,m 0801 7A2F 48 mov c,b 0802 7A30 23 inx h 0803 7A31 22 3A 7F shld SNDPTR 0804 7A34 0805 7A34 3A A0 77 RIGHT3: lda FRGADR+1 0806 7A37 BA cmp d 0807 7A38 C2 56 7A jnz RIGHT6 ; je na této hladině žába? 0808 7A3B 21 9F 77 lxi h,FRGADR 0809 7A3E 7E mov a,m 0810 7A3F FE 2E cpi 2eh ; neujela moc vpravo? 0811 7A41 C2 50 7A jnz RIGHT4 0812 7A44 2A 9F 77 lhld FRGADR 0813 7A47 CD A1 77 call EXFROG ; vymazat žábu - ujela.. 0814 7A4A C3 95 7A jmp RIGHTC 0815 7A4D 0816 7A4D C3 51 7A jmp RIGHT5 ; mrtvý kód 0817 7A50 0818 7A50 34 RIGHT4: inr m ; posun žáby doprava 0819 7A51 3E 0C RIGHT5: mvi a,0ch ; výšku posunu zvětšit 0820 7A53 C3 58 7A jmp RIGHT7 ; o výšku žáby 0821 7A56 0822 7A56 3E 06 RIGHT6: mvi a,6 0823 7A58 62 RIGHT7: mov h,d 0824 7A59 2E 00 mvi l,0 0825 7A5B 57 mov d,a 0826 7A5C D5 RIGHT8: push d 0827 7A5D 11 18 00 lxi d,24 0828 7A60 7E RIGHT9: mov a,m 0829 7A61 72 mov m,d 0830 7A62 23 inx h 0831 7A63 56 mov d,m 0832 7A64 77 mov m,a 0833 7A65 23 inx h 0834 7A66 78 mov a,b 0835 7A67 A7 ana a 0836 7A68 CA 77 7A jz RIGHTA 0837 7A6B 05 dcr b 0838 7A6C C2 77 7A jnz RIGHTA 0839 7A6F 41 mov b,c 0840 7A70 DB F6 in 0f6h ; přehrávání samplu za provozu 0841 7A72 EE 04 xri 4 0842 7A74 7F mov a,a 0843 7A75 D3 F6 out 0f6h 0844 7A77 1D RIGHTA: dcr e 0845 7A78 C2 60 7A jnz RIGHT9 0846 7A7B 7A mov a,d 0847 7A7C D1 pop d 0848 7A7D D5 push d 0849 7A7E 5F mov e,a 0850 7A7F 7A mov a,d 0851 7A80 FE 04 cpi 4 0852 7A82 7B mov a,e 0853 7A83 F2 87 7A jp RIGHTB 0854 7A86 AF xra a 0855 7A87 11 D0 FF RIGHTB: lxi d,-48 0856 7A8A 19 dad d 0857 7A8B 77 mov m,a 0858 7A8C 11 C0 FF lxi d,-64 0859 7A8F 19 dad d 0860 7A90 D1 pop d 0861 7A91 15 dcr d 0862 7A92 C2 5C 7A jnz RIGHT8 ; posunout další mikrořádek 0863 7A95 C9 RIGHTC: ret 0864 7A96 0865 7A96 ; ************************ 0866 7A96 ; posun řady můstků doleva 0867 7A96 ; ************************ 0868 7A96 0869 7A96 21 38 7F To_LFT: lxi h,FRQLEN 0870 7A99 35 dcr m 0871 7A9A C2 BF 7A jnz LEFT03 0872 7A9D 2A 3A 7F LEFT01: lhld SNDPTR 0873 7AA0 7E mov a,m 0874 7AA1 A7 ana a 0875 7AA2 C2 B4 7A jnz LEFT02 0876 7AA5 2A 2A 77 lhld SNDNXT 0877 7AA8 22 3A 7F shld SNDPTR 0878 7AAB 2A 40 7F lhld SNDREL 0879 7AAE 22 2A 77 shld SNDNXT 0880 7AB1 C3 9D 7A jmp LEFT01 0881 7AB4 0882 7AB4 7E LEFT02: mov a,m 0883 7AB5 32 38 7F sta FRQLEN 0884 7AB8 23 inx h 0885 7AB9 46 mov b,m 0886 7ABA 48 mov c,b 0887 7ABB 23 inx h 0888 7ABC 22 3A 7F shld SNDPTR 0889 7ABF 0890 7ABF 3A A0 77 LEFT03: lda FRGADR+1 0891 7AC2 BA cmp d 0892 7AC3 C2 E1 7A jnz LEFT06 ; je na této hladině žába? 0893 7AC6 21 9F 77 lxi h,FRGADR 0894 7AC9 7E mov a,m 0895 7ACA FE 01 cpi 1 0896 7ACC C2 DB 7A jnz LEFT04 ; neujela moc vlevo? 0897 7ACF 2A 9F 77 lhld FRGADR 0898 7AD2 CD A1 77 call EXFROG ; vymazat žábu - ujela.. 0899 7AD5 C3 20 7B jmp LEFT12 0900 7AD8 0901 7AD8 C3 DC 7A jmp LEFT05 ; mrtvý kód 0902 7ADB 0903 7ADB 35 LEFT04: dcr m ; posun žáby vlevo 0904 7ADC 3E 0C LEFT05: mvi a,0ch ; výšku posunu zvětšit 0905 7ADE C3 E3 7A jmp LEFT07 ; o výšku žáby 0906 7AE1 3E 06 LEFT06: mvi a,6 0907 7AE3 62 LEFT07: mov h,d 0908 7AE4 2E 2F mvi l,2fh 0909 7AE6 57 mov d,a 0910 7AE7 D5 LEFT08: push d 0911 7AE8 11 18 00 lxi d,24 0912 7AEB 7E LEFT09: mov a,m 0913 7AEC 72 mov m,d 0914 7AED 2B dcx h 0915 7AEE 56 mov d,m 0916 7AEF 77 mov m,a 0917 7AF0 2B dcx h 0918 7AF1 78 mov a,b 0919 7AF2 A7 ana a 0920 7AF3 CA 02 7B jz LEFT10 0921 7AF6 05 dcr b 0922 7AF7 C2 02 7B jnz LEFT10 0923 7AFA 41 mov b,c 0924 7AFB DB F6 in 0f6h ; přehrávání samplů za provozu 0925 7AFD EE 04 xri 4 0926 7AFF 7F mov a,a 0927 7B00 D3 F6 out 0f6h 0928 7B02 1D LEFT10: dcr e 0929 7B03 C2 EB 7A jnz LEFT09 0930 7B06 7A mov a,d 0931 7B07 D1 pop d 0932 7B08 D5 push d 0933 7B09 5F mov e,a 0934 7B0A 7A mov a,d 0935 7B0B FE 04 cpi 4 0936 7B0D 7B mov a,e 0937 7B0E F2 12 7B jp LEFT11 0938 7B11 AF xra a 0939 7B12 11 30 00 LEFT11: lxi d,48 0940 7B15 19 dad d 0941 7B16 77 mov m,a 0942 7B17 11 C0 FF lxi d,-64 0943 7B1A 19 dad d 0944 7B1B D1 pop d 0945 7B1C 15 dcr d 0946 7B1D C2 E7 7A jnz LEFT08 ; posunout další mikrořádek 0947 7B20 C9 LEFT12: ret 0948 7B21 0949 7B21 ; ************************************ 0950 7B21 ; sečte hodnoty v registrech 0951 7B21 ; HL a DE a provede dekadickou korekci 0952 7B21 ; ************************************ 0953 7B21 0954 7B21 7D ADD_DE: mov a,l 0955 7B22 83 add e 0956 7B23 27 daa 0957 7B24 6F mov l,a 0958 7B25 7C mov a,h 0959 7B26 8A adc d 0960 7B27 27 daa 0961 7B28 67 mov h,a 0962 7B29 C9 ret 0963 7B2A 0964 7B2A ; ****************************** 0965 7B2A ; tisk BCD čísla umístěného v HL 0966 7B2A ; na std. pozici pro print 0967 7B2A ; ****************************** 0968 7B2A 0969 7B2A 7C PRN_HL: mov a,h 0970 7B2B E6 F0 ani 0f0h 0971 7B2D 0F rrc 0972 7B2E 0F rrc 0973 7B2F 0F rrc 0974 7B30 0F rrc 0975 7B31 C6 30 adi '0' 0976 7B33 CD 00 85 call prnchr 0977 7B36 7C mov a,h 0978 7B37 E6 0F ani 0fh 0979 7B39 C6 30 adi '0' 0980 7B3B CD 00 85 call prnchr 0981 7B3E 7D mov a,l 0982 7B3F E6 F0 ani 0f0h 0983 7B41 0F rrc 0984 7B42 0F rrc 0985 7B43 0F rrc 0986 7B44 0F rrc 0987 7B45 C6 30 adi '0' 0988 7B47 CD 00 85 call prnchr 0989 7B4A 7D mov a,l 0990 7B4B E6 0F ani 0fh 0991 7B4D C6 30 adi '0' 0992 7B4F CD 00 85 call prnchr 0993 7B52 C9 ret 0994 7B53 0995 7B53 ; **************** 0996 7B53 ; proměnné - skóre 0997 7B53 ; **************** 0998 7B53 0999 7B53 00 00 SCORE: .dw 0 ; skóre 1000 7B55 00 00 MXSCRE: .dw 0 ; max. skóre 1001 7B57 1002 7B57 ; ************************************* 1003 7B57 ; tisk řetězce umístěného bezprostředně 1004 7B57 ; za volací instrukcí CALL 1005 7B57 ; ************************************* 1006 7B57 1007 7B57 E1 OUTSTG: pop h 1008 7B58 3E 0A mvi a,0ah ; prázdný první znak 1009 7B5A CD 00 85 OUTSTl: call prnchr 1010 7B5D 7E mov a,m 1011 7B5E 23 inx h 1012 7B5F A7 ana a 1013 7B60 C2 5A 7B jnz OUTSTl 1014 7B63 E5 push h 1015 7B64 C9 ret 1016 7B65 1017 7B65 ; ************************** 1018 7B65 ; konec hry se zadáním jména 1019 7B65 ; ************************** 1020 7B65 1021 7B65 3A 53 7B ENDGAM: lda SCORE 1022 7B68 A7 ana a ; asi chyba.. 1023 7B69 C2 72 7B jnz ENDG01 ; je tu 3E 54 ale spíše zde 1024 7B6C 3E 54 mvi a,54h ; mělo být 3A 54 7B 1025 7B6E A7 ana a ; původně to mělo asi filtrovat 1026 7B6F CA 37 7C jz SHWLST ; nulový počet bodů 1027 7B72 1028 7B72 2A 53 7B ENDG01: lhld SCORE 1029 7B75 11 99 99 lxi d,9999h ; odečíst 1 bod 1030 7B78 CD 21 7B call ADD_DE 1031 7B7B EB xchg 1032 7B7C 21 0F 77 lxi h,HALL17+1 1033 7B7F 06 11 mvi b,17 ; 17 x kontrola a udělat místo 1034 7B81 2B ENDG02: dcx h 1035 7B82 7B mov a,e 1036 7B83 96 sub m 1037 7B84 23 inx h 1038 7B85 7A mov a,d 1039 7B86 9E sbb m 1040 7B87 A7 ana a 1041 7B88 FA A1 7B jm ENDG04 1042 7B8B 0E 10 mvi c,16 1043 7B8D 05 dcr b 1044 7B8E D5 push d 1045 7B8F 7E ENDG03: mov a,m 1046 7B90 11 10 00 lxi d,16 1047 7B93 19 dad d 1048 7B94 77 mov m,a 1049 7B95 11 EF FF lxi d,0ffefh 1050 7B98 19 dad d 1051 7B99 0D dcr c 1052 7B9A C2 8F 7B jnz ENDG03 1053 7B9D D1 pop d 1054 7B9E C3 81 7B jmp ENDG02 1055 7BA1 1056 7BA1 78 ENDG04: mov a,b 1057 7BA2 FE 11 cpi 17 1058 7BA4 C2 BA 7B jnz ENDG06 1059 7BA7 3E 0A ENDG05: mvi a,10 1060 7BA9 CD 45 77 call INKEY ; test K10 1061 7BAC CA 37 7C jz SHWLST 1062 7BAF 3E 0B mvi a,11 ; test K11 1063 7BB1 CD 45 77 call INKEY 1064 7BB4 CA 99 7C jz PLAY ; go RUN 1065 7BB7 C3 A7 7B jmp ENDG05 1066 7BBA 1067 7BBA 11 0F 00 ENDG06: lxi d,15 1068 7BBD 19 dad d ; zkopírovat SCORE 1069 7BBE 3A 53 7B lda SCORE ; do HALL OF FAME 1070 7BC1 77 mov m,a 1071 7BC2 23 inx h 1072 7BC3 3A 54 7B lda SCORE+1 1073 7BC6 77 mov m,a 1074 7BC7 11 F1 FF lxi d,-15 1075 7BCA 19 dad d 1076 7BCB E5 push h 1077 7BCC 21 00 FF lxi h,0ff00h 1078 7BCF 22 3E C0 shld prnpos 1079 7BD2 CD 57 7B call OUTSTG 1080 7BD5 4E 41 50 49 .db "NAPIS SVOJE MENO:",0 1080 7BD9 53 20 53 56 1080 7BDD 4F 4A 45 20 1080 7BE1 4D 45 4E 4F 1080 7BE5 3A 00 1081 7BE7 1082 7BE7 AF xra a 1083 7BE8 06 0E mvi b,14 1084 7BEA E1 pop h 1085 7BEB FE 89 ENDG12: cpi 89h 1086 7BED CA 23 7C jz ENDG09 1087 7BF0 CD A1 84 ENDG07: call inklav 1088 7BF3 FE 81 cpi 81h ; kód 81h (co to je?) 1089 7BF5 C2 14 7C jnz ENDG08 ; funguje jako BACKSPACE 1090 7BF8 78 mov a,b 1091 7BF9 FE 0E cpi 14 1092 7BFB F2 14 7C jp ENDG08 1093 7BFE 2B dcx h 1094 7BFF 3A 3E C0 lda prnpos 1095 7C02 3D dcr a 1096 7C03 32 3E C0 sta prnpos 1097 7C06 3E 20 mvi a,' ' 1098 7C08 CD 00 85 call prnchr 1099 7C0B 3A 3E C0 lda prnpos 1100 7C0E 3D dcr a 1101 7C0F 32 3E C0 sta prnpos 1102 7C12 04 inr b 1103 7C13 AF xra a 1104 7C14 FE 89 ENDG08: cpi 89h 1105 7C16 CA 23 7C jz ENDG09 ; K1 předčasně ukončí 1106 7C19 FE 20 cpi 32 ; zápis jména 1107 7C1B FA F0 7B jm ENDG07 1108 7C1E FE 60 cpi 60h 1109 7C20 F2 F0 7B jp ENDG07 1110 7C23 FE 89 ENDG09: cpi 89h 1111 7C25 C2 2D 7C jnz ENDG10 1112 7C28 36 20 mvi m,32 1113 7C2A C3 32 7C jmp ENDG11 1114 7C2D 1115 7C2D 77 ENDG10: mov m,a 1116 7C2E CD 00 85 call prnchr 1117 7C31 7E mov a,m 1118 7C32 23 ENDG11: inx h 1119 7C33 05 dcr b 1120 7C34 C2 EB 7B jnz ENDG12 1121 7C37 1122 7C37 ; **************************************** 1123 7C37 ; Přímý vstup po stisku K10 - ukončení hry 1124 7C37 ; a zobrazení tabulky nejlepších výkonů. 1125 7C37 ; Návrat do hry stiskem K11 1126 7C37 ; **************************************** 1127 7C37 1128 7C37 CD 4E 77 SHWLST: call CLS 1129 7C3A 21 00 C6 lxi h,0C600h 1130 7C3D 22 3E C0 shld prnpos 1131 7C40 CD 57 7B call OUTSTG 1132 7C43 54 41 42 55 .db "TABULKA NAJLEPSICH VYKONOV",0 1132 7C47 4C 4B 41 20 1132 7C4B 4E 41 4A 4C 1132 7C4F 45 50 53 49 1132 7C53 43 48 20 56 1132 7C57 59 4B 4F 4E 1132 7C5B 4F 56 00 1133 7C5E 1134 7C5E 21 02 CA lxi h,0ca02h 1135 7C61 22 3E C0 shld prnpos 1136 7C64 06 11 mvi b,17 ; počet scores 1137 7C66 21 00 76 lxi h,HALLOF 1138 7C69 0E 0E SHWLS2: mvi c,14 ; délka jména 1139 7C6B 7E SHWLS3: mov a,m 1140 7C6C CD 00 85 call prnchr 1141 7C6F 23 inx h 1142 7C70 0D dcr c 1143 7C71 C2 6B 7C jnz SHWLS3 1144 7C74 5E mov e,m 1145 7C75 23 inx h 1146 7C76 56 mov d,m 1147 7C77 23 inx h 1148 7C78 E5 push h 1149 7C79 3E 20 mvi a,' ' ; oddělovací mezery 1150 7C7B CD 00 85 call prnchr 1151 7C7E EB xchg 1152 7C7F CD 2A 7B call PRN_HL ; a dosaženého výsledku 1153 7C82 2A 3E C0 lhld prnpos 1154 7C85 11 ED 02 lxi d,02edh 1155 7C88 19 dad d 1156 7C89 22 3E C0 shld prnpos 1157 7C8C E1 pop h 1158 7C8D 05 dcr b 1159 7C8E C2 69 7C jnz SHWLS2 1160 7C91 1161 7C91 3E 0B SHWLS4: mvi a,11 ; test K11 - návrat do hry 1162 7C93 CD 45 77 call INKEY 1163 7C96 C2 91 7C jnz SHWLS4 1164 7C99 1165 7C99 ; ********************************** 1166 7C99 ; Kreslení hrací scény 1167 7C99 ; pseudoautostart si vynutí skok sem 1168 7C99 ; ********************************** 1169 7C99 1170 7C99 CD 4E 77 PLAY: call CLS 1171 7C9C 1172 7C9C 21 00 00 lxi h,0 ; vynulovat aktuální skóre 1173 7C9F 22 53 7B shld SCORE 1174 7CA2 2A 0E 76 lhld HALLOF+14 1175 7CA5 22 55 7B shld MXSCRE ; max. skóre převzít z tabulky 1176 7CA8 1177 7CA8 3E 30 mvi a,48 ; startovní spodní čára 1178 7CAA 21 00 FA lxi h,0fa00h 1179 7CAD 36 3F PLAY1: mvi m,3fh 1180 7CAF 23 inx h 1181 7CB0 3D dcr a 1182 7CB1 C2 AD 7C jnz PLAY1 1183 7CB4 1184 7CB4 11 05 00 lxi d,5 ; perforovaná "dojezdová" čára 1185 7CB7 3E 08 mvi a,8 1186 7CB9 21 02 C4 lxi h,0c402h 1187 7CBC 36 3F PLAY2: mvi m,3fh 1188 7CBE 19 dad d 1189 7CBF 3D dcr a 1190 7CC0 C2 BC 7C jnz PLAY2 1191 7CC3 1192 7CC3 21 00 CA lxi h,0ca00h ; výchozí stav plovoucích můstků 1193 7CC6 3E 05 mvi a,5 1194 7CC8 CD 2F 77 call MUSTEK 1195 7CCB 21 10 CA lxi h,0ca10h 1196 7CCE 3E 03 mvi a,3 1197 7CD0 CD 2F 77 call MUSTEK 1198 7CD3 21 18 CA lxi h,0ca18h 1199 7CD6 3E 06 mvi a,6 1200 7CD8 CD 2F 77 call MUSTEK 1201 7CDB 21 03 D0 lxi h,0d003h 1202 7CDE 3E 05 mvi a,5 1203 7CE0 CD 2F 77 call MUSTEK 1204 7CE3 21 25 D0 lxi h,0d025h 1205 7CE6 3E 05 mvi a,5 1206 7CE8 CD 2F 77 call MUSTEK 1207 7CEB 21 18 D0 lxi h,0d018h 1208 7CEE 3E 03 mvi a,3 1209 7CF0 CD 2F 77 call MUSTEK 1210 7CF3 21 00 D6 lxi h,0d600h 1211 7CF6 3E 05 mvi a,5 1212 7CF8 CD 2F 77 call MUSTEK 1213 7CFB 21 11 D6 lxi h,0d611h 1214 7CFE 3E 05 mvi a,5 1215 7D00 CD 2F 77 call MUSTEK 1216 7D03 21 20 D6 lxi h,0d620h 1217 7D06 3E 04 mvi a,4 1218 7D08 CD 2F 77 call MUSTEK 1219 7D0B 21 00 DC lxi h,0dc00h 1220 7D0E 3E 05 mvi a,5 1221 7D10 CD 2F 77 call MUSTEK 1222 7D13 21 0F DC lxi h,0dc0fh 1223 7D16 3E 05 mvi a,5 1224 7D18 CD 2F 77 call MUSTEK 1225 7D1B 21 15 E2 lxi h,0e215h 1226 7D1E 3E 05 mvi a,5 1227 7D20 CD 2F 77 call MUSTEK 1228 7D23 21 20 E2 lxi h,0e220h 1229 7D26 3E 05 mvi a,5 1230 7D28 CD 2F 77 call MUSTEK 1231 7D2B 21 00 E8 lxi h,0e800h 1232 7D2E 3E 05 mvi a,5 1233 7D30 CD 2F 77 call MUSTEK 1234 7D33 21 20 E8 lxi h,0e820h 1235 7D36 3E 05 mvi a,5 1236 7D38 CD 2F 77 call MUSTEK 1237 7D3B 21 05 EE lxi h,0ee05h 1238 7D3E 3E 05 mvi a,5 1239 7D40 CD 2F 77 call MUSTEK 1240 7D43 21 25 EE lxi h,0ee25h 1241 7D46 3E 05 mvi a,5 1242 7D48 CD 2F 77 call MUSTEK 1243 7D4B 21 05 F4 lxi h,0f405h 1244 7D4E 3E 05 mvi a,5 1245 7D50 CD 2F 77 call MUSTEK 1246 7D53 21 1B F4 lxi h,0f41bh 1247 7D56 3E 05 mvi a,5 1248 7D58 CD 2F 77 call MUSTEK 1249 7D5B 1250 7D5B 21 25 00 lxi h,0025h ; zásobník žab 1251 7D5E 22 2D 77 shld FRGSTK 1252 7D61 AF xra a 1253 7D62 32 2C 77 sta FRGLIV 1254 7D65 E5 PLAY3: push h 1255 7D66 CD AA 78 call STFROG 1256 7D69 E1 pop h 1257 7D6A 11 FB FF lxi d,-5 1258 7D6D 19 dad d 1259 7D6E 7C mov a,h 1260 7D6F A7 ana a 1261 7D70 CA 65 7D jz PLAY3 1262 7D73 1263 7D73 3E 0A PLAY4: mvi a,10 1264 7D75 CD 45 77 call INKEY ; čekání na uvolnění K10 1265 7D78 CA 73 7D jz PLAY4 1266 7D7B 1267 7D7B 21 28 FF lxi h,0ff28h ; vypíše MAX. SCORE 1268 7D7E 22 3E C0 shld prnpos 1269 7D81 CD 57 7B call OUTSTG 1270 7D84 4D 41 58 3D .db "MAX=",0 1270 7D88 00 1271 7D89 2A 55 7B lhld MXSCRE 1272 7D8C CD 2A 7B call PRN_HL 1273 7D8F 1274 7D8F 2A 2D 77 PLAY5: lhld FRGSTK 1275 7D92 22 9F 77 shld FRGADR ; posun kurzoru v zásobníku žab 1276 7D95 11 FB FF lxi d,-5 ; o 5x6 pixelů vlevo 1277 7D98 19 dad d ; (tedy ubere jednu žábu) 1278 7D99 22 2D 77 shld FRGSTK 1279 7D9C AF xra a 1280 7D9D 32 39 7F sta ANIMUJ 1281 7DA0 1282 7DA0 ; ****************** 1283 7DA0 ; přímá hrací smyčka 1284 7DA0 ; ****************** 1285 7DA0 1286 7DA0 21 2C C4 SMYCKA: lxi h,0c42ch 1287 7DA3 22 3E C0 shld prnpos ; aktuální skóre 1288 7DA6 2A 53 7B lhld SCORE 1289 7DA9 CD 2A 7B call PRN_HL 1290 7DAC 1291 7DAC 3A A0 77 lda FRGADR+1 ; odskok na konec hry 1292 7DAF FE FF cpi 0ffh ; došel zásobník s žábama 1293 7DB1 CA 65 7B jz ENDGAM 1294 7DB4 1295 7DB4 3E 0A mvi a,10 ; test K10 - tabulka výkonů 1296 7DB6 CD 45 77 call INKEY 1297 7DB9 CA 37 7C jz SHWLST 1298 7DBC 1299 7DBC 3E 01 mvi a,1 ; test K1 - SOUND OFF ? 1300 7DBE CD 45 77 call INKEY 1301 7DC1 C2 DD 7D jnz SMYC01 1302 7DC4 21 3C 7F lxi h,SNDQUI 1303 7DC7 22 40 7F shld SNDREL 1304 7DCA 22 2A 77 shld SNDNXT 1305 7DCD 21 20 77 lxi h,SNDCHR 1306 7DD0 3A 3B 7F lda SNDPTR+1 1307 7DD3 BC cmp h 1308 7DD4 CA DD 7D jz SMYC01 1309 7DD7 21 3C 7F lxi h,SNDQUI 1310 7DDA 22 3A 7F shld SNDPTR 1311 7DDD 1312 7DDD 3E 02 SMYC01: mvi a,2 1313 7DDF CD 45 77 call INKEY ; test K2 - SOUND ON ? 1314 7DE2 C2 F1 7D jnz SMYC02 1315 7DE5 21 42 7F lxi h,SNDMUS 1316 7DE8 22 40 7F shld SNDREL 1317 7DEB 22 2A 77 shld SNDNXT 1318 7DEE 22 3A 7F shld SNDPTR 1319 7DF1 1320 7DF1 16 CA SMYC02: mvi d,0cah 1321 7DF3 CD 96 7A call To_LFT ; posuny můstků vlevo/vpravo 1322 7DF6 16 D0 mvi d,0d0h 1323 7DF8 CD 0B 7A call To_RGT 1324 7DFB CD 77 77 call GetRND ; generátor pseudonáhody 1325 7DFE E6 07 ani 7 ; s výtěžností ca 50% 1326 7E00 FE 04 cpi 4 1327 7E02 FA 0A 7E jm SMYC03 1328 7E05 16 E2 mvi d,0e2h 1329 7E07 CD 96 7A call To_LFT 1330 7E0A 16 D6 SMYC03: mvi d,0d6h 1331 7E0C CD 96 7A call To_LFT 1332 7E0F 16 DC mvi d,0dch 1333 7E11 CD 0B 7A call To_RGT 1334 7E14 CD 77 77 call GetRND 1335 7E17 E6 07 ani 7 1336 7E19 FE 04 cpi 4 1337 7E1B FA 23 7E jm SMYC04 1338 7E1E 16 D6 mvi d,0d6h 1339 7E20 CD 96 7A call To_LFT 1340 7E23 16 E2 SMYC04: mvi d,0e2h 1341 7E25 CD 96 7A call To_LFT 1342 7E28 16 E8 mvi d,0e8h 1343 7E2A CD 0B 7A call To_RGT 1344 7E2D 16 D6 mvi d,0d6h 1345 7E2F CD 96 7A call To_LFT 1346 7E32 16 EE mvi d,0eeh 1347 7E34 CD 96 7A call To_LFT 1348 7E37 16 F4 mvi d,0f4h 1349 7E39 CD 0B 7A call To_RGT 1350 7E3C CD 77 77 call GetRND 1351 7E3F E6 07 ani 7 1352 7E41 FE 04 cpi 4 1353 7E43 FA 4B 7E jm SMYC05 1354 7E46 16 DC mvi d,0dch 1355 7E48 CD 0B 7A call To_RGT 1356 7E4B 1357 7E4B 3A A0 77 SMYC05: lda FRGADR+1 1358 7E4E FE C4 cpi 0c4h 1359 7E50 C2 66 7E jnz SMYC06 1360 7E53 AF xra a 1361 7E54 32 2C 77 sta FRGLIV 1362 7E57 2A 53 7B lhld SCORE 1363 7E5A 11 00 02 lxi d,200h ; přičíst 200 bodů 1364 7E5D CD 21 7B call ADD_DE 1365 7E60 22 53 7B shld SCORE 1366 7E63 C3 8F 7D jmp PLAY5 1367 7E66 1368 7E66 3A 2C 77 SMYC06: lda FRGLIV 1369 7E69 A7 ana a 1370 7E6A C2 8C 7E jnz SMYC08 1371 7E6D 3E 09 mvi a,9 1372 7E6F CD 45 77 call INKEY ; test klávesy K9 - skok na základnu 1373 7E72 C2 89 7E jnz SMYC07 1374 7E75 3E 01 mvi a,1 1375 7E77 32 2C 77 sta FRGLIV 1376 7E7A 2A 53 7B lhld SCORE 1377 7E7D 11 50 99 lxi d,9950h ; odečíst 50 bodů 1378 7E80 CD 21 7B call ADD_DE 1379 7E83 22 53 7B shld SCORE 1380 7E86 C3 16 7F jmp SMYC14 1381 7E89 1382 7E89 C3 35 7F SMYC07: jmp SMYC15 1383 7E8C 1384 7E8C 3A 54 7B SMYC08: lda SCORE+1 1385 7E8F A7 ana a 1386 7E90 FA AC 7E jm SMYC10 1387 7E93 C2 A0 7E jnz SMYC09 1388 7E96 C2 AC 7E jnz SMYC10 ; mrtvý kód 1389 7E99 3A 53 7B lda SCORE 1390 7E9C A7 ana a 1391 7E9D CA AC 7E jz SMYC10 1392 7EA0 2A 53 7B SMYC09: lhld SCORE 1393 7EA3 11 99 99 lxi d,9999h ; odečíst 1 bod 1394 7EA6 CD 21 7B call ADD_DE 1395 7EA9 22 53 7B shld SCORE 1396 7EAC 21 20 77 SMYC10: lxi h,SNDCHR 1397 7EAF 3A 3B 7F lda SNDPTR+1 1398 7EB2 BC cmp h 1399 7EB3 C2 BD 7E jnz SMYC11 1400 7EB6 AF xra a ; pokud zní sample při 1401 7EB7 32 39 7F sta ANIMUJ ; skoku žáby, pak... 1402 7EBA C3 35 7F jmp SMYC15 1403 7EBD 1404 7EBD 3A A0 77 SMYC11: lda FRGADR+1 1405 7EC0 E6 FE ani 0feh 1406 7EC2 32 A0 77 sta FRGADR+1 1407 7EC5 2A 9F 77 lhld FRGADR 1408 7EC8 7E mov a,m ; skočila žába na můstek? 1409 7EC9 A7 ana a 1410 7ECA C2 DA 7E jnz SMYC12 1411 7ECD 2A 9F 77 lhld FRGADR ; netrefila se 1412 7ED0 CD 77 79 call KOFROG ; ..zbyl jen mastný flek 1413 7ED3 AF xra a 1414 7ED4 32 2C 77 sta FRGLIV ; a vypuštěná duše.. 1415 7ED7 C3 8F 7D jmp PLAY5 1416 7EDA 1417 7EDA 3A 39 7F SMYC12: lda ANIMUJ 1418 7EDD A7 ana a 1419 7EDE C2 FA 7E jnz SMYC13 1420 7EE1 2A 9F 77 lhld FRGADR 1421 7EE4 CD AA 78 call STFROG ; smazat skákající žábu 1422 7EE7 3D dcr a ; a nakreslit už novou sedící 1423 7EE8 32 39 7F sta ANIMUJ 1424 7EEB 2A 53 7B lhld SCORE 1425 7EEE 11 50 00 lxi d,50h ; přičíst 50 bodů 1426 7EF1 CD 21 7B call ADD_DE 1427 7EF4 22 53 7B shld SCORE 1428 7EF7 C3 35 7F jmp SMYC15 1429 7EFA 1430 7EFA 3E 04 SMYC13: mvi a,4 1431 7EFC CD 45 77 call INKEY ; má skočit (K4)? 1432 7EFF C2 35 7F jnz SMYC15 1433 7F02 3A A0 77 lda FRGADR+1 1434 7F05 FE CA cpi 0cah ; dojezd na cílovou? 1435 7F07 C2 16 7F jnz SMYC14 1436 7F0A 2A 9F 77 lhld FRGADR 1437 7F0D 11 00 F9 lxi d,0f900h 1438 7F10 19 dad d 1439 7F11 7E mov a,m ; trefil jsem jsem se? 1440 7F12 A7 ana a 1441 7F13 C2 35 7F jnz SMYC15 1442 7F16 2A 9F 77 SMYC14: lhld FRGADR 1443 7F19 CD F2 77 call JMFROG ; skok žáby 1444 7F1C 3A A0 77 lda FRGADR+1 1445 7F1F D6 05 sui 5 ; o 5x4 mikrořádky nahoru 1446 7F21 32 A0 77 sta FRGADR+1 1447 7F24 3E 01 mvi a,1 ; stávající tón odstavit 1448 7F26 32 38 7F sta FRQLEN ; a začít přehrávat skřek 1449 7F29 2A 3A 7F lhld SNDPTR ; při skoku žáby 1450 7F2C 22 2A 77 shld SNDNXT 1451 7F2F 21 20 77 lxi h,SNDCHR 1452 7F32 22 3A 7F shld SNDPTR 1453 7F35 1454 7F35 C3 A0 7D SMYC15: jmp SMYCKA ; ..chodí pešek okolo.. 1455 7F38 1456 7F38 ; ******** 1457 7F38 ; proměnné 1458 7F38 ; ******** 1459 7F38 1460 7F38 01 FRQLEN: .db 1 ; délka "noty" 1461 7F39 00 ANIMUJ: .db 0 ; animace 1462 7F3A ; 0 = dokončit animaci skoku 1463 7F3A 42 7F SNDPTR: .dw SNDMUS 1464 7F3C 1465 7F3C ; ************** 1466 7F3C ; sample "ticha" 1467 7F3C ; ************** 1468 7F3C 1469 7F3C FF 00 SNDQUI: .db 0ffh,000h 1470 7F3E 00 00 .db 000h,000h 1471 7F40 1472 7F40 ; ******** 1473 7F40 ; proměnné 1474 7F40 ; ******** 1475 7F40 1476 7F40 42 7F SNDREL: .dw SNDMUS 1477 7F42 1478 7F42 ; ************ 1479 7F42 ; sample hudby 1480 7F42 ; ************ 1481 7F42 1482 7F42 20 30 20 2B SNDMUS: .db 20h,30h,20h,2bh,20h,26h,08h,00h 1482 7F46 20 26 08 00 1483 7F4A 40 24 08 00 .db 40h,24h,08h,00h,40h,24h,08h,00h 1483 7F4E 40 24 08 00 1484 7F52 40 24 10 00 .db 40h,24h,10h,00h,20h,24h,20h,26h 1484 7F56 20 24 20 26 1485 7F5A 20 2B 08 00 .db 20h,2bh,08h,00h,40h,26h,08h,00h 1485 7F5E 40 26 08 00 1486 7F62 40 26 08 00 .db 40h,26h,08h,00h,40h,26h,10h,00h 1486 7F66 40 26 10 00 1487 7F6A 20 26 20 2B .db 20h,26h,20h,2bh,20h,30h,08h,00h 1487 7F6E 20 30 08 00 1488 7F72 40 2B 08 00 .db 40h,2bh,08h,00h,40h,2bh,08h,00h 1488 7F76 40 2B 08 00 1489 7F7A 40 2B 10 00 .db 40h,2bh,10h,00h,20h,2bh,20h,26h 1489 7F7E 20 2B 20 26 1490 7F82 20 2B 08 00 .db 20h,2bh,08h,00h,40h,30h,08h,00h 1490 7F86 40 30 08 00 1491 7F8A 40 30 08 00 .db 40h,30h,08h,00h,40h,30h,20h,00h 1491 7F8E 40 30 20 00 1492 7F92 00 00 .db 00h,00h 1493 7F94 1494 7F94 ; ********* 1495 7F94 ; mrtvý kód 1496 7F94 ; ********* 1497 7F94 1498 7F94 00 00 C9 .db 0,0,0c9h 1499 7F97 1500 7F97 ; ******************************************* 1501 7F97 ; něco na způsob autostartu po (ne)dokončeném 1502 7F97 ; přesunu bloku na začátku tohoto programu 1503 7F97 ; ******************************************* 1504 7F97 1505 7F97 .org 7f97h 1506 7F97 1507 7F97 99 7C .dw PLAY ; pseudo - autostart 1508 7F99 99 7C .dw PLAY ; (při první lepším RET 1509 7F9B 99 7C .dw PLAY ; se vybere "návratová" 1510 7F9D 99 7C .dw PLAY ; adresa, která je 1511 7F9F 99 7C .dw PLAY ; ukazatelem na rutinu 1512 7FA1 99 7C .dw PLAY ; vykreslení scény) 1513 7FA3 99 7C .dw PLAY 1514 7FA5 99 7C .dw PLAY 1515 7FA7 1516 7FA7 99 7C .dw PLAY 1517 7FA9 99 7C .dw PLAY 1518 7FAB 99 7C .dw PLAY 1519 7FAD 99 7C .dw PLAY 1520 7FAF 99 7C .dw PLAY 1521 7FB1 99 7C .dw PLAY 1522 7FB3 99 7C .dw PLAY 1523 7FB5 99 7C .dw PLAY 1524 7FB7 1525 7FB7 99 7C .dw PLAY 1526 7FB9 99 7C .dw PLAY 1527 7FBB 99 7C .dw PLAY 1528 7FBD 99 7C .dw PLAY 1529 7FBF 99 7C .dw PLAY 1530 7FC1 99 7C .dw PLAY 1531 7FC3 99 7C .dw PLAY 1532 7FC5 99 7C .dw PLAY 1533 7FC7 1534 7FC7 99 7C .dw PLAY 1535 7FC9 99 7C .dw PLAY 1536 7FCB 99 7C .dw PLAY 1537 7FCD 99 7C .dw PLAY 1538 7FCF 99 7C .dw PLAY 1539 7FD1 99 7C .dw PLAY 1540 7FD3 99 7C .dw PLAY 1541 7FD5 99 7C .dw PLAY 1542 7FD7 1543 7FD7 99 7C .dw PLAY 1544 7FD9 99 7C .dw PLAY 1545 7FDB 99 7C .dw PLAY 1546 7FDD 99 7C .dw PLAY 1547 7FDF 99 7C .dw PLAY 1548 7FE1 99 7C .dw PLAY 1549 7FE3 99 7C .dw PLAY 1550 7FE5 99 7C .dw PLAY 1551 7FE7 1552 7FE7 99 7C .dw PLAY 1553 7FE9 99 7C .dw PLAY 1554 7FEB 99 7C .dw PLAY 1555 7FED 99 7C .dw PLAY 1556 7FEF 99 7C .dw PLAY 1557 7FF1 99 7C .dw PLAY 1558 7FF3 99 7C .dw PLAY 1559 7FF5 99 7C .dw PLAY 1560 7FF7 1561 7FF7 99 7C .dw PLAY 1562 7FF9 99 7C .dw PLAY 1563 7FFB 99 7C .dw PLAY 1564 7FFD 99 7C .dw PLAY 1565 7FFF 1566 7FFF 99 C3 .db 99h,0c3h 1567 8001 1568 8001 .end