📄 mdesign.ls1
字号:
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 + -