ORG 24000 JR STMEN0 DEFM "UnCo" DEFB 9 C1 DEFB 7 ;меню C2 DEFB 7 ;поле C3 DEFB 7 ;ввод имени для рекорда C4 DEFB 7 ;выбор клавиш C5 DEFB 7 ;выбор уровня сложности C6 DEFB 7 ;гамовер C7 DEFB 7 ;выигрыш C8 DEFB 7 ;о программе C9 DEFB 7 ;таблица рекордов STMEN0 LD A,(C1) LD (WNMC),A LD (WNMC2),A LD A,(C2) LD (WN1C),A LD A,(C3) LD (WNERC),A LD A,(C4) LD (WNKC),A LD (WNKC2),A LD A,(C5) LD (WNSETC),A LD (WNSTC2),A LD A,(C6) LD (WNEC),A LD A,(C7) LD (WNWC),A LD A,(C8) LD (WNAC),A LD A,(C9) LD (WNRC),A CALL LOAD STMENU CALL SETEND XOR A LD IX,WNM LD C,$wt RST 16 LD C,$menu RST 16 LD A,(WIN) BIT 2,A JR NZ,RESUME PUSH AF XOR A LD (GAMECO),A INC A INC A LD (GAMECU),A POP AF BIT 0,A JP NZ,ENDGAME BIT 1,A JP NZ,WINNER BIT 3,A JR NZ,ENDGAME BIT 4,A JR Z,STMENU STEX LD C,$kwait RST 16 XOR A LD A,#F4 RET RESUME LD A,1 LD (GAMECO),A INC A INC A LD (GAMECU),A JR STMENU ENDGAME XOR A LD (WIN),A LD IX,WNE CALL WINDOW JP STMENU WINDOW XOR A LD C,$wt RST 16 LD C,$adrwt RST 16 CALL WKEY RET WINNER XOR A LD (WIN),A LD IX,WNW CALL WINDOW LD A,(REGIM) ADD A,A ADD A,A ADD A,A ADD A,A LD L,A LD H,0 LD DE,RECRDS+14 ADD HL,DE PUSH HL LD E,(HL) INC HL LD D,(HL) LD HL,(TIME) AND A SBC HL,DE POP HL JP NC,STMENU LD DE,(TIME) LD (HL),E INC HL LD (HL),D LD DE,15 XOR A SBC HL,DE PUSH HL LD IX,WNER LD C,$wt RST 16 LD C,$adrwt RST 16 LD HL,#309 LD C,$wtpos RST 16 POP HL LD A,14 LD BC,#100+$smbgt LD DE,#300 RST 16 ;--- CALL SAVE JP STMENU WNER DEFB 6,9,6,20 WNERC DEFB %10111,#80,10,24 DEFM " Вы установили рекорд!" DEFB 13,13 DEFM "Ваше имя:" DEFB 3 FILE DEFM "ismine dat" DEFB 1 DEFW 0 DEFB 56,0,0 SAVE LD HL,FILE LD C,$erfil RST 16 DEC C RST 16 RET C XOR A LD L,A LD H,A LD DE,56 LD IX,RECRDS LD C,$wpart RST 16 RET C LD C,$putf RST 16 LD C,$flush RST 16 RET LOAD LD HL,FILE LD C,$fopen RST 16 RET C XOR A LD L,A LD H,A LD DE,56 LD IX,RECRDS LD C,$rpart RST 16 RET ABOUT XOR A LD (WIN),A LD IX,WNA CALL WINDOW LD A,#FF OR A RET WKEY LD C,$kwait RST 16 WKEY1 LD C,$ktest RST 16 JR Z,WKEY1 LD C,$key RST 16 RET QUIT LD A,#10 LD (WIN),A LD A,#FF OR A RET SETUP XOR A LD (WIN),A LD IX,WNSET LD C,$wt RST 16 LD C,$menu RST 16 SETEND LD A,(REGIM) ADD A,A LD L,A LD H,0 LD DE,GAMEA ADD HL,DE LD A,(HL) INC HL LD H,(HL) LD L,A LD DE,GAMEN LD BC,14 LDIR CALL SETU CALL SAVE LD A,#FF OR A RET NNN DEFW NN1,NN2,NN3 SETU LD A,(REGIM) ADD A,A LD L,A LD H,0 LD DE,NNN ADD HL,DE LD A,(HL) INC HL LD H,(HL) LD L,A JP (HL) NN1 LD A,32 LD (N2),A LD (N3),A LD A,"x" LD (N1),A XOR A LD (REGIM),A INC A RET NN2 LD A,32 LD (N1),A LD (N3),A LD A,"x" LD (N2),A LD A,1 LD (REGIM),A OR A RET NN3 LD A,32 LD (N2),A LD (N1),A LD A,"x" LD (N3),A LD A,2 LD (REGIM),A DEC A RET SETK XOR A LD IX,WNK LD C,$wt RST 16 CALL PRKEY LD C,$menu RST 16 KSEXIT LD A,#FF OR A RET KK LD A,(SK) LD H,A LD L,7 PUSH HL LD C,$wtpos RST 16 LD BC,#400+$type KK1 LD A,32 RST 16 DJNZ KK1 POP HL LD C,$wtpos RST 16 KK2 LD C,$y___ RST 16 CALL WKEY PUSH AF LD C,$n___ RST 16 POP AF LD B,8 LD HL,KEYS KK3 CP (HL) JR Z,KK22 INC HL DJNZ KK3 PUSH AF KK23 LD A,(SK) SUB 3 LD L,A LD H,0 LD DE,KEYS ADD HL,DE POP AF LD (HL),A CALL SAVE LD A,1 OR A RET KK22 LD DE,KEYS AND A SBC HL,DE PUSH AF LD A,(SK) SUB 3 SUB L JR Z,KK23 POP AF JR KK2 KEYBEXE DEFW 0,0,KK,KK,KK,KK,KK,KK,KK,0,KSEXIT PRKEY LD DE,KEYS LD HL,KKKK+7 LD B,7 PRK1 PUSH BC LD A,(DE) CP 32 JR C,PRKK LD (HL),A LD B,3 PRK11 INC HL LD (HL),32 DJNZ PRK11 PRK2 INC DE LD BC,9 ADD HL,BC POP BC DJNZ PRK1 RET PRKK LD BC,4 SUB 4 ADD A,A ADD A,A PUSH DE PUSH HL LD L,A LD H,0 LD DE,KEYZ ADD HL,DE POP DE LDIR DEC DE EX DE,HL POP DE JR PRK2 KEYZ ;4 DEFM "TrV " DEFM "InV " DEFM "CsL " DEFM "Edit" DEFM "Lf " DEFM "Rt " DEFM "Dn " DEFM "Up " DEFM "Del " DEFM "Ent " DEFM "Mac " DEFM "Graf" DEFM "PgDn" DEFM "Pref" DEFM "Pref" DEFM "Eras" DEFM "Ins " DEFM "PgUp" DEFM "Pref" DEFM "Tab " WNKC2 DEFB #E DEFB 0 DEFB %111000 SK DEFB 3 DEFW PRKEY DEFW 0 DEFW 0 DEFW KEYBEXE WNK DEFB 10,6,13,12 WNKC DEFB #E,#80,15,14 DEFB 0,0,1,1,1,1,1,1,1,0,1 DEFM "Выбери кнопки" DEFB 13,13 KKKK DEFM "Вниз " DEFB 13 DEFM "Вверх " DEFB 13 DEFM "Вправо " DEFB 13 DEFM "Влево " DEFB 13 DEFM "Отрыть " DEFB 13 DEFM "Флаг " DEFB 13 DEFM "------ " DEFB 13,13 DEFM "Выход" DEFB 13,3 SETEXE DEFW 0,0,NN1,NN2,NN3,0,SETEND WNSTC2 DEFB %10111 DEFB 0 DEFB %111000 DEFB 3 DEFW 0 DEFW 0 DEFW 0 DEFW SETEXE WNSET DEFB 10,7,9,12 WNSETC DEFB %10111,#80,15,13 DEFB 0,0,1,1,1,0,1 DEFM "Класс игрока" DEFB 13,13 N1 DEFM "x Нормальный" DEFB 13 N2 DEFM " Специалист" DEFB 13 N3 DEFM " Эксперт" DEFB 13,13 DEFM " Выход" DEFB 3 WNE DEFB 8,10,3,16 WNEC DEFB %10111,#80,12,19 DEFM " Вы проиграли!" DEFB 3 WNW DEFB 8,10,3,16 WNWC DEFB %101001,#80,12,19 DEFM "Поле разминировано!" DEFB 3 WNA DEFB 6,10,4,20 WNAC DEFB %101001,#80,9,24 DEFM "iS-mine v1.0 Diman+ 2005" DEFB 13 DEFM "Demon from Diman Plus Co" DEFB 3 MAINEXE DEFW 0,START,STARTH,SETUP,SETK,RECORD,ABOUT,QUIT WNMC2 DEFB #E DEFB 0 DEFB %111000 GAMECU DEFB 2 DEFW 0 DEFW 0 DEFW 0 DEFW MAINEXE WNM DEFB 8,7,10,16 WNMC DEFB #E,#80,13,17 DEFB 0,1 GAMECO DEFB 0,1,1,1,1,1 WNMT DEFM "iS-mine v1.0" DEFB 13 DEFM "Новая игра" DEFB 13 DEFM "Продолжить игру" DEFB 13 DEFM "Установки игры>" DEFB 13 DEFM "Поменять клавиши>" DEFB 13 DEFM "Таблица рекордов>" DEFB 13 DEFM "Об игре и авторе>" DEFB 13 DEFM "Выход в iS-DOS" DEFB 13,3 G1 DEFB -10,10,10,10 DEFW 100,MPW,MPW+100,MPW+200 DEFB 10,5 G2 DEFB -15,15,15,25 DEFW 225,MPW,MPW+225,MPW+450 DEFB 7,2 G3 DEFB -30,30,20,99 DEFW 600,MPW,MPW+600,MPW+1200,0 GAMEA DEFW G1,G2,G3 GAMEN SHIRI DEFB -10 SHIR DEFB 10 HEIHT DEFB 10 MINEC DEFB 10 POLE DEFW 100 MAPW DEFW MPW MAPR DEFW MPW+100 STACK DEFW MPW+200 BASE0 DEFB 5,10 TIME DEFW 0 MINE DEFW 10 WIN DEFB 0 ;WIN ;1 ;бит0 - взорвался ;бит1 - выигрыш ;бит2 - временный выход ;бит3 - время равно 999 ;бит4 - выход из игры ;бит6 - открыты все клетки ;бит7 - помечены все мины X DEFB 0 Y DEFB 0 START LD HL,(BASE0) LD (BASE),HL LD A,(HEIHT) ADD A,3 LD (WN1H),A LD A,(SHIR) INC A INC A LD (WN1L),A SUB 3 LD (BOMB2),A DEC A LD (BOMB1),A LD A,(MINEC) LD (MINE),A XOR A LD (WIN),A LD (DOLI),A LD H,A LD L,A LD (X),HL LD (TIME),HL CALL GENMAP STARTH XOR A LD (WIN),A LD IX,WN1 LD C,$wt XOR A RST 16 CALL CRMAP CALL OUTWIN EI GL CALL PRCUR HALT LD C,$ktest RST 16 PUSH AF CALL INCTIME POP AF JR Z,GL LD C,$key RST 16 CALL KEY LD A,(WIN) AND %111111 JR Z,GL LD A,#FF OR A RET KEY LD B,8 LD DE,KEXE LD HL,KEYS KEY0 CP (HL) JR Z,KEY1 INC HL INC DE INC DE DJNZ KEY0 RET KEY1 EX DE,HL LD A,(HL) INC HL LD H,(HL) LD L,A JP (HL) KEXE DEFW DOWN,UP,RIGHT,LEFT,FIRE,FLAG,FREE,EXIT DOLI DEFB 0 INCTIME LD A,(DOLI) INC A LD (DOLI),A CP 50 RET NZ XOR A LD (DOLI),A LD HL,(TIME) INC HL LD (TIME),HL CALL OUTT LD HL,(TIME) LD DE,999 AND A SBC HL,DE LD A,H OR L RET NZ LD A,(WIN) OR 8 LD (WIN),A RET EXIT LD A,(WIN) OR 4 LD (WIN),A RET OUTWIN CALL MAP LD A,1 LD HL,#101 LD DE,(BASE) ADD HL,DE CALL PRSIM LD A,2 LD HL,#108 BOMB1 EQU $-2 LD DE,(BASE) ADD HL,DE CALL PRSIM OUTM LD HL,#109 BOMB2 EQU $-2 LD DE,(BASE) ADD HL,DE LD DE,(MINE) LD BC,2 CALL PRDIG OUTT LD HL,#102 LD DE,(BASE) ADD HL,DE LD DE,(TIME) LD BC,3 CALL PRDIG RET DOWN CALL CLCUR LD A,(HEIHT) LD C,A LD A,(Y) INC A CP C JR C,DNE XOR A DNE LD (Y),A RET UP CALL CLCUR LD A,(Y) DEC A CP #FF JR NZ,UPE LD A,(HEIHT) DEC A UPE LD (Y),A RET RIGHT CALL CLCUR LD A,(SHIR) LD C,A LD A,(X) INC A CP C JR C,RTE XOR A RTE LD (X),A RET LEFT CALL CLCUR LD A,(X) DEC A CP #FF JR NZ,LFE LD A,(SHIR) DEC A LFE LD (X),A RET FLAG ; LD A,(MINE) ; OR A ; RET Z CALL CLCUR LD HL,(X) CALL GETKL BIT 7,A JR Z,FLE XOR %00100000 LD E,A BIT 5,A LD A,(MINE) JR Z,FLR OR A RET Z DEC A FLE00 LD (MINE),A LD A,E CALL PUTKL FLE0 CALL CRMAP CALL OUTWIN CALL FINAL FLE RET FLR INC A JR FLE00 FINAL LD BC,(POLE) LD HL,(MAPR) LD E,0 FIN1 LD A,%01100000 AND (HL) CP %01100000 JR NZ,FIN2 INC E FIN2 DEC BC INC HL LD A,B OR C JR NZ,FIN1 LD A,(MINEC) CP E RET NZ LD A,(WIN) OR #80 LD (WIN),A BIT 6,A RET Z OR 2 LD (WIN),A RET FRK CALL GETKL JR C,$+6 AND %1100000 JR NZ,$+5 INC C JR $+7 CP %1100000 JR NZ,$+3 INC B RET FRK2 CALL GETKL JR C,$+14 BIT 6,A JR NZ,$+10 PUSH HL CALL PUTST CALL FILL POP HL RET FREE CALL CLCUR LD HL,(X) CALL GETKL OR A RET Z AND %11100000 RET NZ LD BC,0 DEC L CALL FRK DEC H CALL FRK INC L CALL FRK INC L CALL FRK INC H CALL FRK INC H CALL FRK DEC L CALL FRK DEC L CALL FRK LD A,B ADD A,C CP 8 RET NZ CALL FRK2 DEC H CALL FRK2 DEC H CALL FRK2 INC L CALL FRK2 INC L CALL FRK2 INC H CALL FRK2 INC H CALL FRK2 DEC L CALL FRK2 JR FIRE0 FIRE CALL CLCUR LD HL,(X) CALL GETKL RES 5,A BIT 6,A JR NZ,BUM CALL PUTKL CALL PUTST CALL FILL FIRE0 CALL OPEN FIRE1 CALL CRMAP CALL OUTWIN RET BUM RES 7,A CALL PUTKL LD A,(WIN) OR 1 LD (WIN),A JR FIRE1 OPEN LD BC,(POLE) LD DE,0 LD HL,(MAPR) OPEN0 LD A,(HL) AND %11111000 CP #80 JR NZ,OPEN1 INC DE OPEN1 DEC BC INC HL LD A,B OR C JR NZ,OPEN0 LD A,E OR D RET NZ LD A,(WIN) OR #40 LD (WIN),A BIT 7,A RET Z OR 2 LD (WIN),A RET FILK CALL GETKL JR C,$+13 BIT 7,A JR Z,$+9 AND %1100000 JR NZ,$+5 CALL PUTST RET FILL LD HL,(ST) LD A,L OR H RET Z CALL GETST CALL GETKL RES 7,A CALL PUTKL AND %1100111 JR NZ,FILL DEC L CALL FILK DEC H CALL FILK INC L CALL FILK INC L CALL FILK INC H CALL FILK INC H CALL FILK DEC L CALL FILK DEC L CALL FILK JP FILL PUTST LD IX,(STACK) LD (IX),L INC IX LD (IX),H INC IX LD (STACK),IX LD IX,(ST) INC IX LD (ST),IX RET GETST LD IX,(STACK) DEC IX LD H,(IX) DEC IX LD L,(IX) LD (STACK),IX LD IX,(ST) DEC IX LD (ST),IX RET PRCUR CALL ADRC LD A,(WN1C) SET 7,A LD (HL),A RET ADRC LD HL,(X) LD DE,(BASE) ADD HL,DE CALL ADRA RET CLCUR CALL ADRC LD A,(WN1C) LD (HL),A RET ADRA INC H INC H INC L LD A,%111 AND H RRCA RRCA RRCA OR L LD L,A LD A,%11111000 AND H RRCA RRCA RRCA OR #58 LD H,A RET GENMAP LD DE,(MAPW) INC DE LD HL,(POLE) ADD HL,HL DEC HL PUSH HL POP BC LD HL,(MAPW) LD (HL),0 LDIR LD A,(MINEC) LD B,A GNM1 CALL RANDOM LD HL,(MAPR) ADD HL,DE LD A,(HL) CP #C0 JR Z,GNM1 LD (HL),#C0 DJNZ GNM1 LD A,(HEIHT) LD B,A LD HL,0 GNM2 PUSH HL PUSH BC LD A,(SHIR) LD B,A GNM3 LD C,0 CALL GETKL BIT 7,A JP NZ,GNM4 DEC L CALL GETKL JR C,GNM31 BIT 6,A JR Z,GNM31 INC C GNM31 DEC H CALL GETKL JR C,GNM32 BIT 6,A JR Z,GNM32 INC C GNM32 INC L CALL GETKL JR C,GNM33 BIT 6,A JR Z,GNM33 INC C GNM33 INC L CALL GETKL JR C,GNM34 BIT 6,A JR Z,GNM34 INC C GNM34 INC H CALL GETKL JR C,GNM35 BIT 6,A JR Z,GNM35 INC C GNM35 INC H CALL GETKL JR C,GNM36 BIT 6,A JR Z,GNM36 INC C GNM36 DEC L CALL GETKL JR C,GNM37 BIT 6,A JR Z,GNM37 INC C GNM37 DEC L CALL GETKL JR C,GNM38 BIT 6,A JR Z,GNM38 INC C GNM38 DEC H INC L LD A,C CALL PUTKL GNM4 INC L DJNZ GNM3 POP BC POP HL INC H DJNZ GNM2 LD HL,(MAPR) LD BC,(POLE) GNM5 SET 7,(HL) DEC BC INC HL LD A,B OR C JR NZ,GNM5 RET RANDOM CALL RND LD E,A CALL RND LD D,A AND A LD HL,(POLE) DEC HL SBC HL,DE JR C,RANDOM RET GETKL LD A,(SHIR) DEC A CP L RET C LD A,(HEIHT) DEC A CP H RET C PUSH BC PUSH HL CALL ADR LD A,(HL) POP HL POP BC RET PUTKL PUSH BC PUSH HL PUSH AF CALL ADR POP AF LD (HL),A POP HL POP BC RET ADR LD A,H OR A JR Z,ADR2 LD A,(SHIR) LD E,A LD D,0 LD B,H LD H,D ADR1 ADD HL,DE DJNZ ADR1 ADR2 LD DE,(MAPR) ADD HL,DE RET RND PUSH DE LD A,(R1) LD D,A LD A,R LD (R1),A LD A,(R2) ADD A,D LD D,A LD A,(R3) LD (R2),A ADD A,D RLCA LD (R3),A POP DE RET CRMAP LD DE,(MAPR) LD HL,(MAPW) LD BC,(POLE) CRM1 LD A,(DE) BIT 5,A JR NZ,CRMF BIT 7,A JR NZ,CRMZ BIT 6,A JR NZ,CRMM OR A JR NZ,CRM3 LD A,ZNE JR CRM2 CRM3 ADD A,SMDIG CRM2 LD (HL),A INC HL INC DE DEC BC LD A,B OR C JR NZ,CRM1 RET CRMZ LD A,ZNZ JR CRM2 CRMF LD A,ZNF JR CRM2 CRMM LD A,ZNM JR CRM2 MAP LD HL,#201 LD DE,(BASE) ADD HL,DE LD DE,(MAPW) LD A,(HEIHT) LD B,A MP1 PUSH BC LD A,(SHIR) LD B,A MP2 LD A,(DE) PUSH DE CALL PRSIM POP DE INC DE INC L DJNZ MP2 LD A,(SHIRI) ADD A,L LD L,A INC H POP BC DJNZ MP1 RET PRDIG PUSH HL PUSH BC LD HL,DTMP XOR A LD A,3 LD BC,#A00+$d_a RST 16 LD DE,DIGIT LD (FONT2),DE POP BC LD HL,DTMP+3 AND A SBC HL,BC EX DE,HL POP HL LD B,C PRDIG1 LD A,(DE) CP 32 CALL Z,PRDC SUB "0" PUSH DE CALL PRSIM POP DE INC DE INC L DJNZ PRDIG1 PRDIGE LD DE,FONT LD (FONT2),DE RET PRDC LD A,"0" RET PRSIM PUSH HL CALL ADRSCR EX DE,HL CALL PRGRAF POP HL RET ADRSCR PUSH AF LD A,H AND %111 RRCA RRCA RRCA OR L LD L,A LD A,H AND %11000 OR #40 LD H,A POP AF RET PRGRAF PUSH HL PUSH DE PUSH BC LD H,0 LD L,A ADD HL,HL ADD HL,HL ADD HL,HL LD BC,FONT FONT2 EQU $-2 ADD HL,BC LD B,8 PRG1 LD A,(HL) LD (DE),A INC D INC HL DJNZ PRG1 POP BC POP DE POP HL RET FONT ZNZ EQU 0 DEFB %11111111 DEFB %11111110 DEFB %11111110 DEFB %11111110 DEFB %11111110 DEFB %11111110 DEFB %11111100 DEFB %10000000 ; DEFB %00000000 DEFB %00000000 DEFB %01111110 DEFB %00100100 DEFB %00011000 DEFB %00111100 DEFB %01111110 ‡ DEFB %11000110 DEFB %11000110 DEFB %11011110 DEFB %11011110 DEFB %11111100 DEFB %10000000 ; ZNE EQU 4 DEFB %00000000 DEFB %00000001 DEFB %00000001 DEFB %00000001 DEFB %00000001 DEFB %00000001 DEFB %00000011 DEFB %01111111 ;цифры SMDIG EQU 5 DIGIT DEFB %00000000 DEFB %00000000 DEFB %01111110 DEFB %01000110 DEFB %01000110 DEFB %01000110 DEFB %01111110 DEFB %00000000 ; DEFB %00000000 DEFB %00000000 DEFB %00111000 DEFB %00011000 DEFB %00011000 DEFB %00011000 DEFB %01111110 DEFB %00000000 ; DEFB %00000000 DEFB %00000000 DEFB %01111110 DEFB %00000110 DEFB %01111110 DEFB %01000000 DEFB %01111110 DEFB %00000000 ; DEFB %00000000 DEFB %00000000 DEFB %01111110 DEFB %00000110 DEFB %00011100 DEFB %00000110 DEFB %01111110 DEFB %00000000 ; DEFB %00000000 DEFB %00000000 DEFB %01000110 DEFB %01000110 DEFB %01111110 DEFB %00000110 DEFB %00000110 DEFB %00000000 ; DEFB %00000000 DEFB %00000000 DEFB %01111110 DEFB %01000000 DEFB %01111110 DEFB %00000110 DEFB %01111110 DEFB %00000000 ; DEFB %00000000 DEFB %00000000 DEFB %01111110 DEFB %01000000 DEFB %01111110 DEFB %01000110 DEFB %01111110 DEFB %00000000 ; DEFB %00000000 DEFB %00000000 DEFB %01111110 DEFB %00000110 DEFB %00000110 DEFB %00000110 DEFB %00000110 DEFB %00000000 ; DEFB %00000000 DEFB %00000000 DEFB %01111110 DEFB %01000110 DEFB %01111110 DEFB %01000110 DEFB %01111110 DEFB %00000000 ; DEFB %00000000 DEFB %00000000 DEFB %01111110 DEFB %01000110 DEFB %01111110 DEFB %00000110 DEFB %01111110 DEFB %00000000 BASE WN1 DEFB 0,0 WN1H DEFB 13 WN1L DEFB 12 WN1C DEFB #F,#80,1,20 RECORD LD IX,WNR LD C,$wt XOR A RST 16 LD C,$adrwt RST 16 LD HL,#401 LD C,$wtpos RST 16 LD HL,N1+2 LD C,$str RST 16 LD HL,#501 LD C,$wtpos RST 16 LD HL,N2+2 LD C,$str RST 16 LD HL,#601 LD C,$wtpos RST 16 LD HL,N3+2 LD C,$str RST 16 LD B,3 LD HL,RECRDS LD DE,#40C RLP PUSH BC PUSH HL EX DE,HL LD C,$wtpos RST 16 EX DE,HL INC D LD BC,14*256+$lnstr RST 16 POP HL LD BC,14 ADD HL,BC PUSH DE LD E,(HL) INC HL LD D,(HL) INC HL PUSH HL LD HL,DTMP XOR A LD A,3 LD BC,#A00+$d_a RST 16 LD A,32 LD C,$type RST 16 LD HL,DTMP LD BC,#300+$lnstr RST 16 POP HL POP DE POP BC DJNZ RLP CALL WKEY LD A,255 OR A RET WNR DEFB 3,8,8,26 WNRC DEFB #F,#80,5,32 DEFM " Таблица рекордов" DEFB 13,13 DEFM " Уровень Имя Время" DEFB 3 ;0/1 ;бит7 -открыта клетка/закрыта ;бит6 -нет/есть мина ;бит5 -нет/флаг ;биты 0-2 -количество мин вокруг клетки ;рекорды 14 байт имени 2 байта время RECRDS DEFM "Неизвестный " DEFW 999 DEFM "Неизвестный " DEFW 999 DEFM "Неизвестный " DEFW 999 REGIM DEFB 0 KEYS DEFB "a","q","p","o",32,13,11,16 ST DEFW 0 R1 DEFB 5 R2 DEFB 73 R3 DEFB 127 DTMP DEFS 3 MPW