⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mdesign.ls1

📁 单片机版俄罗斯方块游戏
💻 LS1
📖 第 1 页 / 共 5 页
字号:

002C 13              916             RRC     A
002D CE              917             XCH     A,R6
002E 13              918             RRC     A
002F                 919     ?C0110:
002F D8F9            920             DJNZ    R0,?C0109
0031 30E00F          921             JNB     ACC.0,?C0035
                     922     ;                       {                       
                     923                             ; SOURCE LINE # 95
                     924     ;                               DrawRect(r,c,r+BLOCKSIZE,c+BLOCKSIZE,1);
                     925                             ; SOURCE LINE # 96
0034 E500     F      926             MOV     A,r?450
0036 2404            927             ADD     A,#04H
0038 FB              928             MOV     R3,A
0039 E500     F      929             MOV     A,c?451
003B 2404            930             ADD     A,#04H
003D F500     F      931             MOV     ?_DrawRect?BYTE+03H,A
003F D200     F      932             SETB    ?_DrawRect?BIT
                     933     ;                       }
                     934                             ; SOURCE LINE # 97
0041 800D            935             SJMP    ?C0113
0043                 936     ?C0035:
                     937     ;                       else{
                     938                             ; SOURCE LINE # 98
                     939     ;                               DrawRect(r,c,r+BLOCKSIZE,c+BLOCKSIZE,0);
                     940                             ; SOURCE LINE # 99
0043 E500     F      941             MOV     A,r?450
0045 2404            942             ADD     A,#04H
0047 FB              943             MOV     R3,A
0048 E500     F      944             MOV     A,c?451
004A 2404            945             ADD     A,#04H
004C F500     F      946             MOV     ?_DrawRect?BYTE+03H,A
004E C200     F      947             CLR     ?_DrawRect?BIT
0050                 948     ?C0113:
0050 AD00     F      949             MOV     R5,c?451
0052 AF00     F      950             MOV     R7,r?450
0054 120000   F      951             LCALL   _DrawRect
                     952     ;                       }
                     953                             ; SOURCE LINE # 100
                     954     ;               }
                     955                             ; SOURCE LINE # 101
0057                 956     ?C0034:
0057 0500     F      957             INC     j?449
0059 E500     F      958             MOV     A,j?449
005B D3              959             SETB    C
005C 940C            960             SUBB    A,#0CH
005E 40B0            961             JC      ?C0032
                     962     ;       }
                     963                             ; SOURCE LINE # 102
0060                 964     ?C0031:
0060 0500     F      965             INC     i?448
0062 E500     F      966             MOV     A,i?448
0064 D3              967             SETB    C
0065 9412            968             SUBB    A,#012H
0067 409A            969             JC      ?C0029
                     970     ; }
                     971                             ; SOURCE LINE # 103
0069                 972     ?C0037:
0069 22              973             RET     
                     974     ; END OF DrawBackGrid
                     975     
                     976     ; 
                     977     ; BOOL DriveBlockDown(BLOCK_GAME* pGame)
                     978     
----                 979             RSEG  ?PR?_DriveBlockDown?MDESIGN
0000                 980     L?0117:
                     981             USING   0
A51 MACRO ASSEMBLER  MDESIGN                                                              04/12/2008 10:44:53 PAGE    16

0000 7B00            982             MOV     R3,#00H
0002                 983     L?0118:
0002 7A00     F      984             MOV     R2,#HIGH (myGame)
0004 7900     F      985             MOV     R1,#LOW (myGame)
0006                 986     _DriveBlockDown:
                     987             USING   0
                     988                             ; SOURCE LINE # 105
0006 8B00     F      989             MOV     pGame?552,R3
0008 8A00     F      990             MOV     pGame?552+01H,R2
000A 8900     F      991             MOV     pGame?552+02H,R1
                     992     ; {
                     993                             ; SOURCE LINE # 106
                     994     ;       if(!MoveBlock(pGame, eMoveDown))
                     995                             ; SOURCE LINE # 107
000C 7D05            996             MOV     R5,#05H
000E 120000   F      997             LCALL   _MoveBlock
0011 4033            998             JC      ?C0038
                     999     ;       {
                    1000                             ; SOURCE LINE # 108
                    1001     ;               ClrLastPoint(); 
                    1002                             ; SOURCE LINE # 109
0013 120000   F     1003             LCALL   ClrLastPoint
                    1004     ;               FixCurBlock(pGame);
                    1005                             ; SOURCE LINE # 110
0016 AB00     F     1006             MOV     R3,pGame?552
0018 AA00     F     1007             MOV     R2,pGame?552+01H
001A A900     F     1008             MOV     R1,pGame?552+02H
001C 120000   F     1009             LCALL   _FixCurBlock
                    1010     ;               if(AdjustGrid(pGame))
                    1011                             ; SOURCE LINE # 111
001F AB00     F     1012             MOV     R3,pGame?552
0021 AA00     F     1013             MOV     R2,pGame?552+01H
0023 A900     F     1014             MOV     R1,pGame?552+02H
0025 120000   F     1015             LCALL   _AdjustGrid
0028 5003           1016             JNC     ?C0039
                    1017     ;                       DrawBackGrid();
                    1018                             ; SOURCE LINE # 112
002A 120000   F     1019             LCALL   DrawBackGrid
002D                1020     ?C0039:
                    1021     ;               if(!NewBlock(pGame)){
                    1022                             ; SOURCE LINE # 113
002D AB00     F     1023             MOV     R3,pGame?552
002F AA00     F     1024             MOV     R2,pGame?552+01H
0031 A900     F     1025             MOV     R1,pGame?552+02H
0033 120000   F     1026             LCALL   _NewBlock
0036 400C           1027             JC      ?C0040
                    1028     ;                       GameOver(pGame);
                    1029                             ; SOURCE LINE # 114
0038 AB00     F     1030             MOV     R3,pGame?552
003A AA00     F     1031             MOV     R2,pGame?552+01H
003C A900     F     1032             MOV     R1,pGame?552+02H
003E 120000   F     1033             LCALL   _GameOver
                    1034     ;                       DrawBackGrid(); 
                    1035                             ; SOURCE LINE # 115
0041 120000   F     1036             LCALL   DrawBackGrid
                    1037     ;               }
                    1038                             ; SOURCE LINE # 116
0044                1039     ?C0040:
                    1040     ;               return 0;
                    1041                             ; SOURCE LINE # 117
0044 C3             1042             CLR     C
0045 22             1043             RET     
                    1044     ;       }
                    1045                             ; SOURCE LINE # 118
0046                1046     ?C0038:
                    1047     ;       return 1;
A51 MACRO ASSEMBLER  MDESIGN                                                              04/12/2008 10:44:53 PAGE    17

                    1048                             ; SOURCE LINE # 119
0046 D3             1049             SETB    C
                    1050     ; }
                    1051                             ; SOURCE LINE # 120
0047                1052     ?C0041:
0047 22             1053             RET     
                    1054     ; END OF _DriveBlockDown
                    1055     
                    1056     ; 
                    1057     ; BOOL JudgeBetterAttr(const GRID_ATTR* CurAttr, const GRID_ATTR* BestAttr)
                    1058     
----                1059             RSEG  ?PR?_JudgeBetterAttr?MDESIGN
0000                1060     _JudgeBetterAttr:
                    1061             USING   0
                    1062                             ; SOURCE LINE # 122
0000 8B00     F     1063             MOV     CurAttr?653,R3
0002 8A00     F     1064             MOV     CurAttr?653+01H,R2
0004 8900     F     1065             MOV     CurAttr?653+02H,R1
                    1066     ; {
                    1067                             ; SOURCE LINE # 123
                    1068     ;       if(CurAttr->nFullRowCount > BestAttr->nFullRowCount){           
                    1069                             ; SOURCE LINE # 124
0006 AB00     F     1070             MOV     R3,BestAttr?654
0008 AA00     F     1071             MOV     R2,BestAttr?654+01H
000A A900     F     1072             MOV     R1,BestAttr?654+02H
000C 900001         1073             MOV     DPTR,#01H
000F 120000   F     1074             LCALL   ?C?CLDOPTR
0012 FF             1075             MOV     R7,A
0013 AB00     F     1076             MOV     R3,CurAttr?653
0015 AA00     F     1077             MOV     R2,CurAttr?653+01H
0017 A900     F     1078             MOV     R1,CurAttr?653+02H
0019 900001         1079             MOV     DPTR,#01H
001C 120000   F     1080             LCALL   ?C?CLDOPTR
001F FE             1081             MOV     R6,A
0020 D3             1082             SETB    C
0021 EF             1083             MOV     A,R7
0022 6480           1084             XRL     A,#080H
0024 F8             1085             MOV     R0,A
0025 EE             1086             MOV     A,R6
0026 6480           1087             XRL     A,#080H
0028 98             1088             SUBB    A,R0
0029 4002           1089             JC      ?C0042
                    1090     ;               return myTrue;
                    1091                             ; SOURCE LINE # 125
002B D3             1092             SETB    C
002C 22             1093             RET     
                    1094     ;       }
                    1095                             ; SOURCE LINE # 126
002D                1096     ?C0042:
                    1097     ;       else if((CurAttr->nFullRowCount==BestAttr->nFullRowCount)
                    1098                             ; SOURCE LINE # 127
002D EE             1099             MOV     A,R6
002E 6F             1100             XRL     A,R7
002F 6008           1101             JZ      ?C0046
0031 EF             1102             MOV     A,R7
0032 6401           1103             XRL     A,#01H
0034 6003           1104             JZ      $ + 5H
0036 020000   F     1105             LJMP    ?C0044
0039                1106     ?C0046:
                    1107     ;               || (BestAttr->nFullRowCount==1) )
                    1108     ;       {
                    1109                             ; SOURCE LINE # 129
                    1110     ;               
                    1111     ;               if(CurAttr->nIdleBankCount<BestAttr->nIdleBankCount){                   
                    1112                             ; SOURCE LINE # 131
0039 AB00     F     1113             MOV     R3,BestAttr?654
A51 MACRO ASSEMBLER  MDESIGN                                                              04/12/2008 10:44:53 PAGE    18

003B AA00     F     1114             MOV     R2,BestAttr?654+01H
003D A900     F     1115             MOV     R1,BestAttr?654+02H
003F 900002         1116             MOV     DPTR,#02H
0042 120000   F     1117             LCALL   ?C?CLDOPTR
0045 FF             1118             MOV     R7,A
0046 AB00     F     1119             MOV     R3,CurAttr?653
0048 AA00     F     1120             MOV     R2,CurAttr?653+01H
004A A900     F     1121             MOV     R1,CurAttr?653+02H
004C 900002         1122             MOV     DPTR,#02H
004F 120000   F     1123             LCALL   ?C?CLDOPTR
0052 FE             1124             MOV     R6,A
0053 C3             1125             CLR     C
0054 9F             1126             SUBB    A,R7
0055 5001           1127             JNC     ?C0047
                    1128     ;                       return myTrue;
                    1129                             ; SOURCE LINE # 132
0057 22             1130             RET     
                    1131     ;               }
                    1132                             ; SOURCE LINE # 133
0058                1133     ?C0047:
                    1134     ;               else if(CurAttr->nIdleBankCount==BestAttr->nIdleBankCount)
                    1135                             ; SOURCE LINE # 134
0058 EE             1136             MOV     A,R6
0059 6F             1137             XRL     A,R7
005A 6003           1138             JZ      $ + 5H
005C 020000   F     1139             LJMP    ?C0044
                    1140     ;               {
                    1141                             ; SOURCE LINE # 135
                    1142     ;                       if(CurAttr->nGrideHeight<BestAttr->nGrideHeight){
                    1143                             ; SOURCE LINE # 136
005F AB00     F

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -