From aae1585b5c51667a4665e1816e016eacee858388 Mon Sep 17 00:00:00 2001 From: iridiumR Date: Sun, 5 Jun 2022 20:26:03 +0800 Subject: [PATCH] =?UTF-8?q?feat(MCU=E8=AF=BE=E8=AE=BE):=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=97=8B=E8=BD=AC=E7=BC=96=E7=A0=81=E5=99=A8=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MCU/MCU_REAL _FINAL/Listings/MCU_1.m51 | 1161 +++++++++++++----------- MCU/MCU_REAL _FINAL/draw.c | 27 +- MCU/MCU_REAL _FINAL/draw.h | 2 +- MCU/MCU_REAL _FINAL/img.h | 10 +- MCU/MCU_REAL _FINAL/main.c | 103 ++- MCU/MCU_REAL _FINAL/main.h | 14 + MCU/MCU_REAL _FINAL/menu.c | 59 +- MCU/MCU_REAL _FINAL/menu.h | 2 + 8 files changed, 813 insertions(+), 565 deletions(-) diff --git a/MCU/MCU_REAL _FINAL/Listings/MCU_1.m51 b/MCU/MCU_REAL _FINAL/Listings/MCU_1.m51 index b6ac37c..d569287 100644 --- a/MCU/MCU_REAL _FINAL/Listings/MCU_1.m51 +++ b/MCU/MCU_REAL _FINAL/Listings/MCU_1.m51 @@ -1,4 +1,4 @@ -BL51 BANKED LINKER/LOCATER V6.22.2.0 06/04/2022 22:31:48 PAGE 1 +BL51 BANKED LINKER/LOCATER V6.22.2.0 06/05/2022 20:24:54 PAGE 1 BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: @@ -18,11 +18,9 @@ INPUT MODULES INCLUDED: .\Objects\block.obj (BLOCK) C:\KEIL_V5\C51\LIB\C51L.LIB (?C_STARTUP) C:\KEIL_V5\C51\LIB\C51L.LIB (?C?COPY) - C:\KEIL_V5\C51\LIB\C51L.LIB (?C?CLDOPTR) C:\KEIL_V5\C51\LIB\C51L.LIB (?C?CSTPTR) C:\KEIL_V5\C51\LIB\C51L.LIB (?C?CSTOPTR) C:\KEIL_V5\C51\LIB\C51L.LIB (?C?SIDIV) - C:\KEIL_V5\C51\LIB\C51L.LIB (?C?PLDPTR) C:\KEIL_V5\C51\LIB\C51L.LIB (?C?PLDOPTR) C:\KEIL_V5\C51\LIB\C51L.LIB (?C?ICALL) C:\KEIL_V5\C51\LIB\C51L.LIB (RAND) @@ -52,51 +50,56 @@ LINK MAP OF MODULE: .\Objects\MCU_1 (MAIN) IDATA 0008H 0001H UNIT ?STACK * * * * * * * X D A T A M E M O R Y * * * * * * * - XDATA 0000H 0015H UNIT ?XD?MENU - XDATA 0015H 0008H UNIT ?XD?INIT_MEM - XDATA 001DH 0008H UNIT _XDATA_GROUP_ - XDATA 0025H 0007H UNIT ?XD?_DRAWFULLIMG?DRAW - XDATA 002CH 0007H UNIT ?XD?GENSHAPE?BLOCK - XDATA 0033H 0006H UNIT ?XD?GROUPINIT?BLOCK - XDATA 0039H 0006H UNIT ?XD?BLOCK - BL51 BANKED LINKER/LOCATER V6.22.2.0 06/04/2022 22:31:48 PAGE 2 + XDATA 0000H 002AH UNIT ?XD?MENU + XDATA 002AH 0008H UNIT ?XD?INIT_MEM + XDATA 0032H 0008H UNIT _XDATA_GROUP_ + XDATA 003AH 0007H UNIT ?XD?GENSHAPE?BLOCK + XDATA 0041H 0006H UNIT ?XD?GROUPINIT?BLOCK + XDATA 0047H 0006H UNIT ?XD?BLOCK + XDATA 004DH 0006H UNIT ?XD?_MALLOC?MALLOC + XDATA 0053H 0004H UNIT ?XD?MAIN + XDATA 0057H 0004H UNIT ?XD?MINICLEAR?DISPLAY + BL51 BANKED LINKER/LOCATER V6.22.2.0 06/05/2022 20:24:54 PAGE 2 - XDATA 003FH 0006H UNIT ?XD?_MALLOC?MALLOC - XDATA 0045H 0004H UNIT ?XD?MINICLEAR?DISPLAY - XDATA 0049H 0004H UNIT ?XD?TEST?DISPLAY - XDATA 004DH 0004H UNIT ?XD?RAND?RAND - XDATA 0051H 0004H UNIT ?XD?_CALLOC?CALLOC - XDATA 0055H 0001H UNIT ?XD?MAIN - XDATA 0056H 0001H UNIT ?XD?GENPIECE?BLOCK + XDATA 005BH 0004H UNIT ?XD?TEST?DISPLAY + XDATA 005FH 0004H UNIT ?XD?RAND?RAND + XDATA 0063H 0004H UNIT ?XD?_CALLOC?CALLOC + XDATA 0067H 0001H UNIT ?XD?GENPIECE?BLOCK * * * * * * * C O D E M E M O R Y * * * * * * * CODE 0000H 0003H ABSOLUTE - CODE 0003H 02B5H UNIT ?C?LIB_CODE - CODE 02B8H 01D7H UNIT ?PR?GENSHAPE?BLOCK - CODE 048FH 011BH UNIT ?PR?DRAWNUMBER?DRAW - CODE 05AAH 0100H UNIT ?CO?DRAW - CODE 06AAH 00D1H UNIT ?PR?_MALLOC?MALLOC - CODE 077BH 00C5H UNIT ?PR?CLEAR?DISPLAY - CODE 0840H 00C5H UNIT ?PR?MINICLEAR?DISPLAY - CODE 0905H 00C5H UNIT ?PR?TEST?DISPLAY - CODE 09CAH 009CH UNIT ?PR?_DRAWFULLIMG?DRAW - CODE 0A66H 008EH UNIT ?PR?DRAWNAME?DRAW - CODE 0AF4H 008CH UNIT ?C_C51STARTUP - CODE 0B80H 004FH UNIT ?PR?GENPIECE?BLOCK - CODE 0BCFH 004DH UNIT ?PR?RAND?RAND - CODE 0C1CH 0042H UNIT ?PR?_M_STARTUP?MENU - CODE 0C5EH 0042H UNIT ?PR?_CALLOC?CALLOC - CODE 0CA0H 003CH UNIT ?PR?BLOCKINIT?BLOCK - CODE 0CDCH 003CH UNIT ?PR?_INIT_MEMPOOL?INIT_MEM - CODE 0D18H 0034H UNIT ?PR?MAIN?MAIN - CODE 0D4CH 002FH UNIT ?PR?GROUPINIT?BLOCK - CODE 0D7BH 0020H UNIT ?PR?_DELAY?DELAY - CODE 0D9BH 001CH UNIT ?PR?DISPLAYINIT?DISPLAY - CODE 0DB7H 0019H UNIT ?C_INITSEG - CODE 0DD0H 0019H UNIT ?PR?WRITE?DISPLAY - CODE 0DE9H 000FH UNIT ?PR?MENUINIT?MENU - CODE 0DF8H 000BH UNIT ?PR?DELAY100US?DELAY + CODE 0003H 0003H ABSOLUTE + 0006H 0005H *** GAP *** + CODE 000BH 0003H ABSOLUTE + CODE 000EH 0268H UNIT ?C?LIB_CODE + CODE 0276H 01D7H UNIT ?PR?GENSHAPE?BLOCK + CODE 044DH 0140H UNIT ?CO?DRAW + CODE 058DH 011BH UNIT ?PR?DRAWNUMBER?DRAW + CODE 06A8H 00D1H UNIT ?PR?_MALLOC?MALLOC + CODE 0779H 00C5H UNIT ?PR?CLEAR?DISPLAY + CODE 083EH 00C5H UNIT ?PR?MINICLEAR?DISPLAY + CODE 0903H 00C5H UNIT ?PR?TEST?DISPLAY + CODE 09C8H 008EH UNIT ?PR?DRAWNAME?DRAW + CODE 0A56H 008EH UNIT ?PR?DRAWMAINMENU?DRAW + CODE 0AE4H 008CH UNIT ?C_C51STARTUP + CODE 0B70H 007AH UNIT ?PR?_M_STARTUP?MENU + CODE 0BEAH 0061H UNIT ?PR?TIME?MAIN + CODE 0C4BH 0060H UNIT ?PR?_M_MAINMENU?MENU + CODE 0CABH 005CH UNIT ?PR?INT0?MAIN + CODE 0D07H 0058H UNIT ?PR?MAIN?MAIN + CODE 0D5FH 004FH UNIT ?PR?GENPIECE?BLOCK + CODE 0DAEH 004DH UNIT ?PR?RAND?RAND + CODE 0DFBH 0042H UNIT ?PR?_CALLOC?CALLOC + CODE 0E3DH 003CH UNIT ?PR?BLOCKINIT?BLOCK + CODE 0E79H 003CH UNIT ?PR?_INIT_MEMPOOL?INIT_MEM + CODE 0EB5H 0037H UNIT ?PR?MENUINIT?MENU + CODE 0EECH 002FH UNIT ?PR?GROUPINIT?BLOCK + CODE 0F1BH 0020H UNIT ?PR?_DELAY?DELAY + CODE 0F3BH 001CH UNIT ?PR?DISPLAYINIT?DISPLAY + CODE 0F57H 001AH UNIT ?C_INITSEG + CODE 0F71H 0019H UNIT ?PR?WRITE?DISPLAY + CODE 0F8AH 000BH UNIT ?PR?DELAY100US?DELAY @@ -106,25 +109,22 @@ OVERLAY MAP OF MODULE: .\Objects\MCU_1 (MAIN) SEGMENT XDATA_GROUP +--> CALLED SEGMENT START LENGTH -------------------------------------------------- +?PR?TIME?MAIN ----- ----- + +--> ?PR?_DELAY?DELAY + +*** NEW ROOT *************************************************** + ?C_C51STARTUP ----- ----- +--> ?PR?MAIN?MAIN +--> ?C_INITSEG ?PR?MAIN?MAIN ----- ----- - +--> ?PR?MENUINIT?MENU + BL51 BANKED LINKER/LOCATER V6.22.2.0 06/05/2022 20:24:54 PAGE 3 -?C_INITSEG ----- ----- - +--> ?PR?_M_STARTUP?MENU -?PR?_M_STARTUP?MENU 001DH 0004H +--> ?PR?DISPLAYINIT?DISPLAY +--> ?PR?CLEAR?DISPLAY - BL51 BANKED LINKER/LOCATER V6.22.2.0 06/04/2022 22:31:48 PAGE 3 - - - +--> ?PR?DRAWNAME?DRAW - +--> ?PR?_DELAY?DELAY - +--> ?PR?DRAWNUMBER?DRAW + +--> ?PR?MENUINIT?MENU ?PR?DISPLAYINIT?DISPLAY ----- ----- +--> ?PR?WRITE?DISPLAY @@ -132,14 +132,32 @@ SEGMENT XDATA_GROUP ?PR?WRITE?DISPLAY ----- ----- +--> ?PR?_DELAY?DELAY -?PR?CLEAR?DISPLAY 0021H 0004H +?PR?CLEAR?DISPLAY 0036H 0004H +--> ?PR?WRITE?DISPLAY -?PR?DRAWNAME?DRAW 0021H 0002H +?PR?MENUINIT?MENU ----- ----- + +--> ?PR?_M_STARTUP?MENU + +--> ?PR?_M_MAINMENU?MENU + +?PR?_M_STARTUP?MENU 0032H 0004H + +--> ?PR?DRAWNAME?DRAW + +--> ?PR?_DELAY?DELAY + +--> ?PR?DRAWNUMBER?DRAW + +--> ?PR?CLEAR?DISPLAY + +?PR?DRAWNAME?DRAW 0036H 0002H +--> ?PR?WRITE?DISPLAY +--> ?CO?DRAW -?PR?DRAWNUMBER?DRAW 0021H 0002H +?PR?DRAWNUMBER?DRAW 0036H 0002H + +--> ?PR?WRITE?DISPLAY + +--> ?CO?DRAW + +?PR?_M_MAINMENU?MENU 0032H 0004H + +--> ?PR?DRAWMAINMENU?DRAW + +--> ?PR?CLEAR?DISPLAY + +?PR?DRAWMAINMENU?DRAW 0036H 0002H +--> ?PR?WRITE?DISPLAY +--> ?CO?DRAW @@ -155,77 +173,179 @@ SYMBOL TABLE OF MODULE: .\Objects\MCU_1 (MAIN) D:0090H PUBLIC P1 D:00A0H PUBLIC P2 D:00B0H PUBLIC P3 + B:00A8H.7 PUBLIC EA D:00A8H PUBLIC IE D:00B8H PUBLIC IP - C:0D18H PUBLIC main + X:0053H PUBLIC TH + X:0054H PUBLIC TL + C:0D07H PUBLIC main + BL51 BANKED LINKER/LOCATER V6.22.2.0 06/05/2022 20:24:54 PAGE 4 + + + C:0BEAH PUBLIC time D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD D:0088H PUBLIC TCON + B:00A8H.1 PUBLIC ET0 + D:008CH PUBLIC TH0 + B:00A8H.0 PUBLIC EX0 + B:0088H.0 PUBLIC IT0 + D:008AH PUBLIC TL0 X:0055H PUBLIC opr + B:0088H.4 PUBLIC TR0 D:00C8H PUBLIC T2CON + X:0056H PUBLIC freshScreenTriger + B:00B0H.2 PUBLIC PIN_1 + B:00B0H.4 PUBLIC PIN_3 D:00D0H PUBLIC PSW + B:00B0H.5 PUBLIC PIN_4 + C:0CABH PUBLIC int0 + ------- PROC INT0 + ------- DO + D:0005H SYMBOL LS + D:0007H SYMBOL CS + D:0006H SYMBOL flag + ------- ENDDO + C:0CABH LINE# 11 + C:0CC0H LINE# 29 + C:0CC2H LINE# 30 + C:0CC6H LINE# 31 + C:0CC9H LINE# 32 + C:0CC9H LINE# 33 + C:0CCEH LINE# 34 + C:0CD0H LINE# 35 + C:0CD2H LINE# 36 + C:0CD7H LINE# 37 + C:0CD7H LINE# 38 + C:0CE2H LINE# 39 + C:0CE7H LINE# 40 + C:0CF0H LINE# 41 + C:0CF4H LINE# 42 + C:0CF4H LINE# 44 + ------- ENDPROC INT0 + ------- PROC TIME + C:0BEAH LINE# 46 + C:0C07H LINE# 48 + C:0C09H LINE# 49 + C:0C0FH LINE# 50 + C:0C15H LINE# 51 + C:0C1BH LINE# 53 + C:0C1EH LINE# 54 + C:0C1EH LINE# 55 + C:0C25H LINE# 56 + C:0C28H LINE# 57 + C:0C2EH LINE# 58 + C:0C2EH LINE# 59 + C:0C30H LINE# 60 + ------- ENDPROC TIME ------- PROC MAIN - C:0D18H LINE# 17 - C:0D18H LINE# 18 - C:0D18H LINE# 19 - C:0D1BH LINE# 22 - C:0D1BH LINE# 23 - C:0D1BH LINE# 24 - C:0D4AH LINE# 26 + BL51 BANKED LINKER/LOCATER V6.22.2.0 06/05/2022 20:24:54 PAGE 5 + + + C:0D07H LINE# 62 + C:0D07H LINE# 63 + C:0D07H LINE# 64 + C:0D0DH LINE# 65 + C:0D11H LINE# 66 + C:0D14H LINE# 67 + C:0D16H LINE# 69 + C:0D19H LINE# 71 + C:0D1BH LINE# 72 + C:0D1DH LINE# 73 + C:0D1FH LINE# 76 + C:0D21H LINE# 77 + C:0D23H LINE# 79 + C:0D25H LINE# 81 + C:0D28H LINE# 82 + C:0D2BH LINE# 83 + C:0D2EH LINE# 85 + C:0D2EH LINE# 86 + C:0D2EH LINE# 88 + C:0D5DH LINE# 89 ------- ENDPROC MAIN ------- ENDMOD MAIN ------- MODULE MENU C:0000H SYMBOL _ICE_DUMMY_ - X:0000H PUBLIC M_MAINMANU - X:0006H PUBLIC M_PLAYMODE1 - C:0DE9H PUBLIC menuInit - BL51 BANKED LINKER/LOCATER V6.22.2.0 06/04/2022 22:31:48 PAGE 4 - - - X:000CH PUBLIC M_STARTUP - C:0C1CH PUBLIC _m_startup - X:0012H PUBLIC NOW + X:0000H PUBLIC M_MAINMENU + C:0C4BH PUBLIC _m_mainmenu + X:000CH PUBLIC LAST + X:000FH PUBLIC M_PLAYMODE1 + C:0EB5H PUBLIC menuInit + X:001BH PUBLIC M_STARTUP + C:0B70H PUBLIC _m_startup + X:0027H PUBLIC NOW ------- PROC _M_STARTUP - X:001DH SYMBOL this - X:0020H SYMBOL opr - C:0C1CH LINE# 19 - C:0C2AH LINE# 20 - C:0C2AH LINE# 21 - C:0C2DH LINE# 22 - C:0C30H LINE# 23 - C:0C33H LINE# 24 - C:0C3AH LINE# 25 - C:0C3DH LINE# 26 - C:0C44H LINE# 28 - C:0C5DH LINE# 29 + X:0032H SYMBOL this + X:0035H SYMBOL opr + C:0B70H LINE# 21 + C:0B7EH LINE# 22 + C:0B7EH LINE# 25 + C:0BA4H LINE# 26 + C:0BA4H LINE# 27 + C:0BB2H LINE# 29 + C:0BB5H LINE# 30 + C:0BBCH LINE# 31 + C:0BBFH LINE# 32 + C:0BBFH LINE# 34 + C:0BC7H LINE# 35 + C:0BC7H LINE# 36 + C:0BCAH LINE# 37 + C:0BE6H LINE# 38 + C:0BE9H LINE# 39 + C:0BE9H LINE# 41 ------- ENDPROC _M_STARTUP + ------- PROC _M_MAINMENU + X:0032H SYMBOL this + X:0035H SYMBOL opr + C:0C4BH LINE# 43 + BL51 BANKED LINKER/LOCATER V6.22.2.0 06/05/2022 20:24:54 PAGE 6 + + + C:0C59H LINE# 44 + C:0C59H LINE# 45 + C:0C7FH LINE# 46 + C:0C7FH LINE# 47 + C:0C8DH LINE# 48 + C:0C90H LINE# 49 + C:0C90H LINE# 51 + C:0C96H LINE# 52 + C:0C96H LINE# 54 + C:0C99H LINE# 55 + C:0CA7H LINE# 56 + C:0CAAH LINE# 57 + C:0CAAH LINE# 58 + ------- ENDPROC _M_MAINMENU ------- PROC MENUINIT - C:0DE9H LINE# 32 - C:0DE9H LINE# 33 - C:0DE9H LINE# 34 - C:0DF7H LINE# 35 + C:0EB5H LINE# 61 + C:0EB5H LINE# 62 + C:0EB5H LINE# 63 + C:0EC3H LINE# 64 + C:0ECFH LINE# 66 + C:0EDDH LINE# 67 + C:0EEBH LINE# 68 ------- ENDPROC MENUINIT ------- ENDMOD MENU ------- MODULE DELAY C:0000H SYMBOL _ICE_DUMMY_ - C:0DF8H PUBLIC delay100us - C:0D7BH PUBLIC _delay + C:0F8AH PUBLIC delay100us + C:0F1BH PUBLIC _delay ------- PROC DELAY100US ------- DO D:0007H SYMBOL i D:0006H SYMBOL j ------- ENDDO - C:0DF8H LINE# 3 - C:0DF8H LINE# 4 - C:0DF8H LINE# 7 - C:0DF9H LINE# 8 - C:0DFAH LINE# 9 - C:0DFCH LINE# 10 - C:0DFEH LINE# 12 - C:0DFEH LINE# 13 - C:0E00H LINE# 14 - C:0E02H LINE# 15 + C:0F8AH LINE# 3 + C:0F8AH LINE# 4 + C:0F8AH LINE# 7 + C:0F8BH LINE# 8 + C:0F8CH LINE# 9 + C:0F8EH LINE# 10 + C:0F90H LINE# 12 + C:0F90H LINE# 13 + C:0F92H LINE# 14 + C:0F94H LINE# 15 ------- ENDPROC DELAY100US ------- PROC _DELAY D:0006H SYMBOL n @@ -233,13 +353,13 @@ SYMBOL TABLE OF MODULE: .\Objects\MCU_1 (MAIN) D:0006H SYMBOL i D:0004H SYMBOL j ------- ENDDO - C:0D7BH LINE# 24 - C:0D7BH LINE# 26 - C:0D7BH LINE# 27 - C:0D86H LINE# 28 - C:0D9AH LINE# 29 + C:0F1BH LINE# 24 + C:0F1BH LINE# 26 + C:0F1BH LINE# 27 + C:0F26H LINE# 28 + C:0F3AH LINE# 29 ------- ENDPROC _DELAY - BL51 BANKED LINKER/LOCATER V6.22.2.0 06/04/2022 22:31:48 PAGE 5 + BL51 BANKED LINKER/LOCATER V6.22.2.0 06/05/2022 20:24:54 PAGE 7 ------- ENDMOD DELAY @@ -249,554 +369,556 @@ SYMBOL TABLE OF MODULE: .\Objects\MCU_1 (MAIN) D:0090H PUBLIC P1 D:00A0H PUBLIC P2 D:00B0H PUBLIC P3 - C:077BH PUBLIC clear + C:0779H PUBLIC clear D:00A8H PUBLIC IE - C:0D9BH PUBLIC displayInit + C:0F3BH PUBLIC displayInit D:00B8H PUBLIC IP B:00A0H.0 PUBLIC RS B:00A0H.1 PUBLIC RW - C:0DD9H PUBLIC write + C:0F7AH PUBLIC write D:0098H PUBLIC SCON D:0088H PUBLIC TCON - C:0840H PUBLIC miniclear - C:0905H PUBLIC test + C:083EH PUBLIC miniclear + C:0903H PUBLIC test B:00A0H.2 PUBLIC E B:00A0H.4 PUBLIC CSA B:00A0H.5 PUBLIC CSB D:00C8H PUBLIC T2CON D:00D0H PUBLIC PSW - C:0DD0H SYMBOL L?0055 + C:0F71H SYMBOL L?0055 ------- PROC L?0054 ------- ENDPROC L?0054 - C:0DD0H SYMBOL L?0055 + C:0F71H SYMBOL L?0055 ------- PROC WRITE - C:0DD9H LINE# 17 - C:0DD9H LINE# 18 - C:0DD9H LINE# 19 - C:0DDBH LINE# 20 - C:0DDDH LINE# 21 - C:0DDFH LINE# 22 - C:0DE6H LINE# 23 - C:0DE8H LINE# 24 + C:0F7AH LINE# 17 + C:0F7AH LINE# 18 + C:0F7AH LINE# 19 + C:0F7CH LINE# 20 + C:0F7EH LINE# 21 + C:0F80H LINE# 22 + C:0F87H LINE# 23 + C:0F89H LINE# 24 ------- ENDPROC WRITE ------- PROC CLEAR ------- DO - X:0021H SYMBOL i - X:0023H SYMBOL j + X:0036H SYMBOL i + X:0038H SYMBOL j ------- ENDDO - C:077BH LINE# 28 - C:077BH LINE# 29 - C:077BH LINE# 31 - C:077DH LINE# 32 - C:077FH LINE# 33 - C:0796H LINE# 34 - C:0796H LINE# 35 - C:0796H LINE# 36 - C:0796H LINE# 37 - C:0796H LINE# 38 - C:0799H LINE# 39 - C:079CH LINE# 40 - C:079FH LINE# 42 - C:07A6H LINE# 43 - C:07A6H LINE# 44 - BL51 BANKED LINKER/LOCATER V6.22.2.0 06/04/2022 22:31:48 PAGE 6 + C:0779H LINE# 28 + C:0779H LINE# 29 + C:0779H LINE# 31 + C:077BH LINE# 32 + C:077DH LINE# 33 + C:0794H LINE# 34 + C:0794H LINE# 35 + C:0794H LINE# 36 + C:0794H LINE# 37 + C:0794H LINE# 38 + C:0797H LINE# 39 + C:079AH LINE# 40 + C:079DH LINE# 42 + C:07A4H LINE# 43 + C:07A4H LINE# 44 + BL51 BANKED LINKER/LOCATER V6.22.2.0 06/05/2022 20:24:54 PAGE 8 - C:07A8H LINE# 45 - C:07AAH LINE# 46 - C:07ADH LINE# 47 - C:07B0H LINE# 48 - C:07CDH LINE# 49 - C:07DDH LINE# 50 - C:07DFH LINE# 51 - C:07E1H LINE# 52 - C:07F8H LINE# 53 - C:07F8H LINE# 54 - C:07F8H LINE# 55 - C:07F8H LINE# 56 - C:07F8H LINE# 57 - C:07FBH LINE# 58 - C:07FEH LINE# 59 - C:0801H LINE# 61 - C:0808H LINE# 62 - C:0808H LINE# 63 - C:080AH LINE# 64 - C:080CH LINE# 65 - C:080FH LINE# 66 - C:0812H LINE# 67 - C:082FH LINE# 68 - C:083FH LINE# 69 + C:07A6H LINE# 45 + C:07A8H LINE# 46 + C:07ABH LINE# 47 + C:07AEH LINE# 48 + C:07CBH LINE# 49 + C:07DBH LINE# 50 + C:07DDH LINE# 51 + C:07DFH LINE# 52 + C:07F6H LINE# 53 + C:07F6H LINE# 54 + C:07F6H LINE# 55 + C:07F6H LINE# 56 + C:07F6H LINE# 57 + C:07F9H LINE# 58 + C:07FCH LINE# 59 + C:07FFH LINE# 61 + C:0806H LINE# 62 + C:0806H LINE# 63 + C:0808H LINE# 64 + C:080AH LINE# 65 + C:080DH LINE# 66 + C:0810H LINE# 67 + C:082DH LINE# 68 + C:083DH LINE# 69 ------- ENDPROC CLEAR ------- PROC MINICLEAR ------- DO - X:0045H SYMBOL i - X:0047H SYMBOL j + X:0057H SYMBOL i + X:0059H SYMBOL j ------- ENDDO - C:0840H LINE# 72 - C:0840H LINE# 73 - C:0840H LINE# 75 - C:0842H LINE# 76 - C:0844H LINE# 77 - C:085BH LINE# 78 - C:085BH LINE# 79 - C:085BH LINE# 80 - C:085BH LINE# 81 - C:085BH LINE# 82 - C:085EH LINE# 83 - C:0861H LINE# 84 - C:0864H LINE# 86 - C:086BH LINE# 87 - C:086BH LINE# 88 - C:086DH LINE# 89 - C:086FH LINE# 90 - C:0872H LINE# 91 - C:0875H LINE# 92 - C:0892H LINE# 93 - C:08A2H LINE# 94 - C:08A4H LINE# 95 - C:08A6H LINE# 96 - C:08BDH LINE# 97 - C:08BDH LINE# 98 - C:08BDH LINE# 99 - C:08BDH LINE# 100 - BL51 BANKED LINKER/LOCATER V6.22.2.0 06/04/2022 22:31:48 PAGE 7 + C:083EH LINE# 72 + C:083EH LINE# 73 + C:083EH LINE# 75 + C:0840H LINE# 76 + C:0842H LINE# 77 + C:0859H LINE# 78 + C:0859H LINE# 79 + C:0859H LINE# 80 + C:0859H LINE# 81 + C:0859H LINE# 82 + C:085CH LINE# 83 + C:085FH LINE# 84 + C:0862H LINE# 86 + C:0869H LINE# 87 + C:0869H LINE# 88 + C:086BH LINE# 89 + C:086DH LINE# 90 + C:0870H LINE# 91 + C:0873H LINE# 92 + C:0890H LINE# 93 + C:08A0H LINE# 94 + C:08A2H LINE# 95 + C:08A4H LINE# 96 + C:08BBH LINE# 97 + C:08BBH LINE# 98 + C:08BBH LINE# 99 + C:08BBH LINE# 100 + BL51 BANKED LINKER/LOCATER V6.22.2.0 06/05/2022 20:24:54 PAGE 9 - C:08BDH LINE# 101 - C:08C0H LINE# 102 - C:08C3H LINE# 103 - C:08C6H LINE# 105 - C:08CDH LINE# 106 - C:08CDH LINE# 107 - C:08CFH LINE# 108 - C:08D1H LINE# 109 - C:08D4H LINE# 110 - C:08D7H LINE# 111 - C:08F4H LINE# 112 - C:0904H LINE# 113 + C:08BBH LINE# 101 + C:08BEH LINE# 102 + C:08C1H LINE# 103 + C:08C4H LINE# 105 + C:08CBH LINE# 106 + C:08CBH LINE# 107 + C:08CDH LINE# 108 + C:08CFH LINE# 109 + C:08D2H LINE# 110 + C:08D5H LINE# 111 + C:08F2H LINE# 112 + C:0902H LINE# 113 ------- ENDPROC MINICLEAR ------- PROC DISPLAYINIT - C:0D9BH LINE# 114 - C:0D9BH LINE# 115 - C:0D9BH LINE# 116 - C:0D9DH LINE# 117 - C:0D9FH LINE# 118 - C:0DA1H LINE# 119 - C:0DA3H LINE# 120 - C:0DA5H LINE# 121 - C:0DA8H LINE# 122 - C:0DABH LINE# 124 - C:0DADH LINE# 125 - C:0DAFH LINE# 126 - C:0DB1H LINE# 127 - C:0DB4H LINE# 128 + C:0F3BH LINE# 114 + C:0F3BH LINE# 115 + C:0F3BH LINE# 116 + C:0F3DH LINE# 117 + C:0F3FH LINE# 118 + C:0F41H LINE# 119 + C:0F43H LINE# 120 + C:0F45H LINE# 121 + C:0F48H LINE# 122 + C:0F4BH LINE# 124 + C:0F4DH LINE# 125 + C:0F4FH LINE# 126 + C:0F51H LINE# 127 + C:0F54H LINE# 128 ------- ENDPROC DISPLAYINIT ------- PROC TEST ------- DO - X:0049H SYMBOL i - X:004BH SYMBOL j + X:005BH SYMBOL i + X:005DH SYMBOL j ------- ENDDO - C:0905H LINE# 131 - C:0905H LINE# 132 - C:0905H LINE# 134 - C:0907H LINE# 135 - C:0909H LINE# 136 - C:0920H LINE# 137 - C:0920H LINE# 138 - C:0920H LINE# 139 - C:0920H LINE# 140 - C:0920H LINE# 141 - C:0923H LINE# 142 - C:0926H LINE# 143 - C:0929H LINE# 145 - C:0930H LINE# 146 - C:0930H LINE# 147 - C:0932H LINE# 148 - C:0934H LINE# 149 - C:0937H LINE# 150 - C:093AH LINE# 151 - C:0957H LINE# 152 - C:0967H LINE# 153 - C:0969H LINE# 154 - C:096BH LINE# 155 - BL51 BANKED LINKER/LOCATER V6.22.2.0 06/04/2022 22:31:48 PAGE 8 + C:0903H LINE# 131 + C:0903H LINE# 132 + C:0903H LINE# 134 + C:0905H LINE# 135 + C:0907H LINE# 136 + C:091EH LINE# 137 + C:091EH LINE# 138 + C:091EH LINE# 139 + C:091EH LINE# 140 + C:091EH LINE# 141 + C:0921H LINE# 142 + C:0924H LINE# 143 + C:0927H LINE# 145 + C:092EH LINE# 146 + C:092EH LINE# 147 + C:0930H LINE# 148 + C:0932H LINE# 149 + C:0935H LINE# 150 + C:0938H LINE# 151 + C:0955H LINE# 152 + C:0965H LINE# 153 + C:0967H LINE# 154 + C:0969H LINE# 155 + BL51 BANKED LINKER/LOCATER V6.22.2.0 06/05/2022 20:24:54 PAGE 10 - C:0982H LINE# 156 - C:0982H LINE# 157 - C:0982H LINE# 158 - C:0982H LINE# 159 - C:0982H LINE# 160 - C:0985H LINE# 161 - C:0988H LINE# 162 - C:098BH LINE# 164 - C:0992H LINE# 165 - C:0992H LINE# 166 - C:0994H LINE# 167 - C:0996H LINE# 168 - C:0999H LINE# 169 - C:099CH LINE# 170 - C:09B9H LINE# 171 - C:09C9H LINE# 172 + C:0980H LINE# 156 + C:0980H LINE# 157 + C:0980H LINE# 158 + C:0980H LINE# 159 + C:0980H LINE# 160 + C:0983H LINE# 161 + C:0986H LINE# 162 + C:0989H LINE# 164 + C:0990H LINE# 165 + C:0990H LINE# 166 + C:0992H LINE# 167 + C:0994H LINE# 168 + C:0997H LINE# 169 + C:099AH LINE# 170 + C:09B7H LINE# 171 + C:09C7H LINE# 172 ------- ENDPROC TEST ------- ENDMOD DISPLAY ------- MODULE DRAW C:0000H SYMBOL _ICE_DUMMY_ D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 D:00B0H PUBLIC P3 + C:054DH PUBLIC MAINMANU_PAGE0 + C:056DH PUBLIC MAINMANU_PAGE1 D:00A8H PUBLIC IE + C:0A56H PUBLIC drawMAINMENU D:00B8H PUBLIC IP - C:09CAH PUBLIC _drawFullIMG - B:00B0H.0 PUBLIC RS - B:00B0H.1 PUBLIC RW + B:00A0H.0 PUBLIC RS + B:00A0H.1 PUBLIC RW D:0098H PUBLIC SCON D:0088H PUBLIC TCON - C:068AH PUBLIC NUMBER_RPAGE0 - C:069AH PUBLIC NUMBER_RPAGE1 - C:05AAH PUBLIC NAME_PAGE0 - C:05DAH PUBLIC NAME_PAGE1 - C:0A66H PUBLIC drawNAME - B:00B0H.4 PUBLIC CSA - B:00B0H.5 PUBLIC CSB + C:052DH PUBLIC NUMBER_RPAGE0 + C:053DH PUBLIC NUMBER_RPAGE1 + C:044DH PUBLIC NAME_PAGE0 + C:047DH PUBLIC NAME_PAGE1 + C:09C8H PUBLIC drawNAME + B:00A0H.4 PUBLIC CSA + B:00A0H.5 PUBLIC CSB D:00C8H PUBLIC T2CON D:00D0H PUBLIC PSW - C:060AH PUBLIC NUMBER_PAGE0 - C:064AH PUBLIC NUMBER_PAGE1 - C:048FH PUBLIC drawNUMBER + C:04ADH PUBLIC NUMBER_PAGE0 + C:04EDH PUBLIC NUMBER_PAGE1 + C:058DH PUBLIC drawNUMBER ------- PROC DRAWNUMBER ------- DO - X:0021H SYMBOL j + X:0036H SYMBOL j ------- ENDDO - C:048FH LINE# 12 - C:048FH LINE# 13 - C:048FH LINE# 15 - C:0496H LINE# 16 - C:0496H LINE# 19 - C:0498H LINE# 20 - C:049AH LINE# 21 - C:049CH LINE# 22 - C:049EH LINE# 23 - C:04A1H LINE# 24 - C:04A4H LINE# 25 - BL51 BANKED LINKER/LOCATER V6.22.2.0 06/04/2022 22:31:48 PAGE 9 + C:058DH LINE# 12 + C:058DH LINE# 13 + C:058DH LINE# 15 + C:0594H LINE# 16 + C:0594H LINE# 19 + C:0596H LINE# 20 + C:0598H LINE# 21 + C:059AH LINE# 22 + BL51 BANKED LINKER/LOCATER V6.22.2.0 06/05/2022 20:24:54 PAGE 11 - C:04ADH LINE# 26 - C:04B0H LINE# 28 - C:04B2H LINE# 29 - C:04B4H LINE# 30 - C:04C8H LINE# 31 - C:04CBH LINE# 33 - C:04CDH LINE# 34 - C:04CFH LINE# 35 - C:04D2H LINE# 36 - C:04D5H LINE# 37 - C:04DEH LINE# 38 - C:04E1H LINE# 40 - C:04E3H LINE# 41 - C:04E5H LINE# 42 - C:04F9H LINE# 43 - C:04FCH LINE# 46 - C:051CH LINE# 47 - C:0523H LINE# 48 - C:0523H LINE# 51 - C:0525H LINE# 52 - C:0527H LINE# 53 - C:0529H LINE# 54 - C:052BH LINE# 55 - C:052EH LINE# 56 - C:0531H LINE# 57 - C:053AH LINE# 58 - C:053DH LINE# 60 - C:053FH LINE# 61 - C:0541H LINE# 62 - C:0555H LINE# 63 - C:0558H LINE# 65 - C:055AH LINE# 66 - C:055CH LINE# 67 - C:055FH LINE# 68 - C:0562H LINE# 69 - C:056BH LINE# 70 - C:056EH LINE# 72 - C:0570H LINE# 73 - C:0572H LINE# 74 - C:0586H LINE# 75 - C:0589H LINE# 78 - C:05A9H LINE# 79 + C:059CH LINE# 23 + C:059FH LINE# 24 + C:05A2H LINE# 25 + C:05ABH LINE# 26 + C:05AEH LINE# 28 + C:05B0H LINE# 29 + C:05B2H LINE# 30 + C:05C6H LINE# 31 + C:05C9H LINE# 33 + C:05CBH LINE# 34 + C:05CDH LINE# 35 + C:05D0H LINE# 36 + C:05D3H LINE# 37 + C:05DCH LINE# 38 + C:05DFH LINE# 40 + C:05E1H LINE# 41 + C:05E3H LINE# 42 + C:05F7H LINE# 43 + C:05FAH LINE# 46 + C:061AH LINE# 47 + C:0621H LINE# 48 + C:0621H LINE# 51 + C:0623H LINE# 52 + C:0625H LINE# 53 + C:0627H LINE# 54 + C:0629H LINE# 55 + C:062CH LINE# 56 + C:062FH LINE# 57 + C:0638H LINE# 58 + C:063BH LINE# 60 + C:063DH LINE# 61 + C:063FH LINE# 62 + C:0653H LINE# 63 + C:0656H LINE# 65 + C:0658H LINE# 66 + C:065AH LINE# 67 + C:065DH LINE# 68 + C:0660H LINE# 69 + C:0669H LINE# 70 + C:066CH LINE# 72 + C:066EH LINE# 73 + C:0670H LINE# 74 + C:0684H LINE# 75 + C:0687H LINE# 78 + C:06A7H LINE# 79 ------- ENDPROC DRAWNUMBER ------- PROC DRAWNAME ------- DO - X:0021H SYMBOL j + X:0036H SYMBOL j ------- ENDDO - C:0A66H LINE# 81 - C:0A66H LINE# 82 - C:0A66H LINE# 85 - C:0A6DH LINE# 86 - C:0A6DH LINE# 89 - C:0A6FH LINE# 90 - C:0A71H LINE# 91 - C:0A73H LINE# 92 - C:0A75H LINE# 93 - C:0A78H LINE# 94 - BL51 BANKED LINKER/LOCATER V6.22.2.0 06/04/2022 22:31:48 PAGE 10 + C:09C8H LINE# 81 + C:09C8H LINE# 82 + C:09C8H LINE# 85 + C:09CFH LINE# 86 + C:09CFH LINE# 87 + C:09D1H LINE# 88 + C:09D3H LINE# 89 + BL51 BANKED LINKER/LOCATER V6.22.2.0 06/05/2022 20:24:54 PAGE 12 - C:0A7BH LINE# 95 - C:0A84H LINE# 96 - C:0A87H LINE# 98 - C:0A89H LINE# 99 - C:0A8BH LINE# 100 - C:0A9FH LINE# 101 - C:0AA2H LINE# 103 - C:0AA4H LINE# 104 - C:0AA6H LINE# 105 - C:0AA9H LINE# 106 - C:0AACH LINE# 107 - C:0AB5H LINE# 108 - C:0AB8H LINE# 110 - C:0ABAH LINE# 111 - C:0ABCH LINE# 112 - C:0AD0H LINE# 113 - C:0AD3H LINE# 114 - C:0AF3H LINE# 115 + C:09D5H LINE# 90 + C:09D7H LINE# 91 + C:09DAH LINE# 92 + C:09DDH LINE# 93 + C:09E6H LINE# 94 + C:09E9H LINE# 96 + C:09EBH LINE# 97 + C:09EDH LINE# 98 + C:0A01H LINE# 99 + C:0A04H LINE# 101 + C:0A06H LINE# 102 + C:0A08H LINE# 103 + C:0A0BH LINE# 104 + C:0A0EH LINE# 105 + C:0A17H LINE# 106 + C:0A1AH LINE# 108 + C:0A1CH LINE# 109 + C:0A1EH LINE# 110 + C:0A32H LINE# 111 + C:0A35H LINE# 112 + C:0A55H LINE# 113 ------- ENDPROC DRAWNAME - ------- PROC _DRAWFULLIMG - X:0025H SYMBOL img + ------- PROC DRAWMAINMENU ------- DO - X:0028H SYMBOL j - X:002AH SYMBOL i + X:0036H SYMBOL j ------- ENDDO - C:09CAH LINE# 116 - C:09D5H LINE# 117 - C:09D5H LINE# 120 - C:09DAH LINE# 121 - C:09F1H LINE# 122 - C:09F1H LINE# 124 - C:09F3H LINE# 125 - C:09F5H LINE# 126 - C:09F7H LINE# 127 - C:09F9H LINE# 128 - C:09FEH LINE# 129 - C:0A01H LINE# 130 - C:0A0AH LINE# 131 - C:0A0DH LINE# 133 - C:0A0FH LINE# 134 - C:0A11H LINE# 135 - C:0A32H LINE# 136 - C:0A35H LINE# 137 - C:0A65H LINE# 138 - ------- ENDPROC _DRAWFULLIMG + C:0A56H LINE# 114 + C:0A56H LINE# 115 + C:0A56H LINE# 118 + C:0A5DH LINE# 119 + C:0A5DH LINE# 121 + C:0A5FH LINE# 122 + C:0A61H LINE# 123 + C:0A63H LINE# 124 + C:0A65H LINE# 125 + C:0A68H LINE# 126 + C:0A6BH LINE# 127 + C:0A74H LINE# 128 + C:0A77H LINE# 130 + C:0A79H LINE# 131 + C:0A7BH LINE# 132 + C:0A8FH LINE# 133 + C:0A92H LINE# 135 + C:0A94H LINE# 136 + C:0A96H LINE# 137 + C:0A99H LINE# 138 + C:0A9CH LINE# 139 + C:0AA5H LINE# 140 + C:0AA8H LINE# 142 + C:0AAAH LINE# 143 + C:0AACH LINE# 144 + C:0AC0H LINE# 145 + C:0AC3H LINE# 146 + C:0AE3H LINE# 147 + ------- ENDPROC DRAWMAINMENU ------- ENDMOD DRAW + BL51 BANKED LINKER/LOCATER V6.22.2.0 06/05/2022 20:24:54 PAGE 13 + + ------- MODULE BLOCK C:0000H SYMBOL _ICE_DUMMY_ - X:0039H PUBLIC piece - X:003CH PUBLIC base - C:0B80H PUBLIC genPiece - C:0CA0H PUBLIC blockInit - C:02B8H PUBLIC genShape - C:0D4CH PUBLIC groupInit + X:0047H PUBLIC piece + X:004AH PUBLIC base + C:0D5FH PUBLIC genPiece + C:0E3DH PUBLIC blockInit + C:0276H PUBLIC genShape + C:0EECH PUBLIC groupInit ------- PROC GROUPINIT - X:0033H SYMBOL g - BL51 BANKED LINKER/LOCATER V6.22.2.0 06/04/2022 22:31:48 PAGE 11 - - - X:0038H SYMBOL i + X:0041H SYMBOL g + X:0046H SYMBOL i ------- DO - C:0D4CH SYMBOL retry + C:0EECH SYMBOL retry ------- ENDDO - C:0D4CH LINE# 26 - C:0D4CH LINE# 27 - C:0D4CH LINE# 28 - C:0D4CH LINE# 29 - C:0D54H LINE# 30 - C:0D59H LINE# 31 - C:0D76H LINE# 32 - C:0D7AH LINE# 33 - C:0D7AH LINE# 34 + C:0EECH LINE# 26 + C:0EECH LINE# 27 + C:0EECH LINE# 28 + C:0EECH LINE# 29 + C:0EF4H LINE# 30 + C:0EF9H LINE# 31 + C:0F16H LINE# 32 + C:0F1AH LINE# 33 + C:0F1AH LINE# 34 ------- ENDPROC GROUPINIT ------- PROC BLOCKINIT - C:0CA0H LINE# 6 - C:0CA0H LINE# 7 - C:0CA0H LINE# 8 - C:0CBBH LINE# 9 + C:0E3DH LINE# 6 + C:0E3DH LINE# 7 + C:0E3DH LINE# 8 + C:0E58H LINE# 9 ------- ENDPROC BLOCKINIT ------- PROC GENPIECE ------- DO - X:0056H SYMBOL i + X:0067H SYMBOL i ------- ENDDO - C:0B80H LINE# 12 - C:0B80H LINE# 13 - C:0B80H LINE# 14 - C:0B91H LINE# 15 - C:0BACH LINE# 16 + C:0D5FH LINE# 12 + C:0D5FH LINE# 13 + C:0D5FH LINE# 14 + C:0D70H LINE# 15 + C:0D8BH LINE# 16 ------- ENDPROC GENPIECE ------- PROC GENSHAPE - X:002CH SYMBOL g + X:003AH SYMBOL g ------- DO - X:0031H SYMBOL random + X:003FH SYMBOL random ------- ENDDO - C:02B8H LINE# 19 - C:02B8H LINE# 20 - C:02B8H LINE# 22 - C:02CAH LINE# 25 - C:02D2H LINE# 26 - C:02D2H LINE# 27 - C:02E8H LINE# 28 - C:02E8H LINE# 29 - C:02F5H LINE# 30 - C:0308H LINE# 31 - C:0310H LINE# 32 - C:0315H LINE# 33 - C:0317H LINE# 35 - C:0317H LINE# 36 - C:0324H LINE# 37 - C:0337H LINE# 38 - C:033FH LINE# 39 - C:0347H LINE# 40 - C:0347H LINE# 41 - C:0347H LINE# 43 - C:0352H LINE# 44 - C:0352H LINE# 45 - BL51 BANKED LINKER/LOCATER V6.22.2.0 06/04/2022 22:31:48 PAGE 12 + C:0276H LINE# 19 + C:0276H LINE# 20 + C:0276H LINE# 22 + C:0288H LINE# 25 + C:0290H LINE# 26 + C:0290H LINE# 27 + C:02A6H LINE# 28 + C:02A6H LINE# 29 + C:02B3H LINE# 30 + C:02C6H LINE# 31 + C:02CEH LINE# 32 + C:02D3H LINE# 33 + BL51 BANKED LINKER/LOCATER V6.22.2.0 06/05/2022 20:24:54 PAGE 14 - C:0368H LINE# 46 - C:0368H LINE# 47 - C:0375H LINE# 48 - C:0388H LINE# 49 - C:0390H LINE# 50 - C:0398H LINE# 51 - C:03A0H LINE# 52 - C:03A5H LINE# 53 - C:03A7H LINE# 55 - C:03A7H LINE# 56 - C:03B4H LINE# 57 - C:03C7H LINE# 58 - C:03CFH LINE# 59 - C:03D7H LINE# 60 - C:03DFH LINE# 61 - C:03E7H LINE# 62 - C:03E7H LINE# 63 - C:03E7H LINE# 65 - C:03F2H LINE# 66 - C:03F2H LINE# 67 - C:03FFH LINE# 68 - C:03FFH LINE# 69 - C:040CH LINE# 70 - C:041FH LINE# 71 - C:0427H LINE# 72 - C:042FH LINE# 73 - C:0437H LINE# 74 - C:043FH LINE# 75 - C:0447H LINE# 76 - C:044CH LINE# 77 - C:044EH LINE# 79 - C:044EH LINE# 80 - C:045BH LINE# 81 - C:046EH LINE# 82 - C:0476H LINE# 83 - C:047EH LINE# 84 - C:0486H LINE# 85 - C:048EH LINE# 86 - C:048EH LINE# 87 - C:048EH LINE# 89 + C:02D5H LINE# 35 + C:02D5H LINE# 36 + C:02E2H LINE# 37 + C:02F5H LINE# 38 + C:02FDH LINE# 39 + C:0305H LINE# 40 + C:0305H LINE# 41 + C:0305H LINE# 43 + C:0310H LINE# 44 + C:0310H LINE# 45 + C:0326H LINE# 46 + C:0326H LINE# 47 + C:0333H LINE# 48 + C:0346H LINE# 49 + C:034EH LINE# 50 + C:0356H LINE# 51 + C:035EH LINE# 52 + C:0363H LINE# 53 + C:0365H LINE# 55 + C:0365H LINE# 56 + C:0372H LINE# 57 + C:0385H LINE# 58 + C:038DH LINE# 59 + C:0395H LINE# 60 + C:039DH LINE# 61 + C:03A5H LINE# 62 + C:03A5H LINE# 63 + C:03A5H LINE# 65 + C:03B0H LINE# 66 + C:03B0H LINE# 67 + C:03BDH LINE# 68 + C:03BDH LINE# 69 + C:03CAH LINE# 70 + C:03DDH LINE# 71 + C:03E5H LINE# 72 + C:03EDH LINE# 73 + C:03F5H LINE# 74 + C:03FDH LINE# 75 + C:0405H LINE# 76 + C:040AH LINE# 77 + C:040CH LINE# 79 + C:040CH LINE# 80 + C:0419H LINE# 81 + C:042CH LINE# 82 + C:0434H LINE# 83 + C:043CH LINE# 84 + C:0444H LINE# 85 + C:044CH LINE# 86 + C:044CH LINE# 87 + C:044CH LINE# 89 ------- ENDPROC GENSHAPE ------- ENDMOD BLOCK ------- MODULE ?C?COPY - C:00D3H PUBLIC ?C?COPY + C:00DEH PUBLIC ?C?COPY ------- ENDMOD ?C?COPY - ------- MODULE ?C?CLDOPTR - C:00F9H PUBLIC ?C?CLDOPTR - ------- ENDMOD ?C?CLDOPTR + BL51 BANKED LINKER/LOCATER V6.22.2.0 06/05/2022 20:24:54 PAGE 15 + ------- MODULE ?C?CSTPTR - C:0126H PUBLIC ?C?CSTPTR + C:0104H PUBLIC ?C?CSTPTR ------- ENDMOD ?C?CSTPTR ------- MODULE ?C?CSTOPTR - C:0138H PUBLIC ?C?CSTOPTR - BL51 BANKED LINKER/LOCATER V6.22.2.0 06/04/2022 22:31:48 PAGE 13 - - + C:0116H PUBLIC ?C?CSTOPTR ------- ENDMOD ?C?CSTOPTR ------- MODULE ?C?SIDIV - C:015AH PUBLIC ?C?SIDIV + C:0138H PUBLIC ?C?SIDIV ------- ENDMOD ?C?SIDIV - ------- MODULE ?C?PLDPTR - C:0190H PUBLIC ?C?PLDPTR - ------- ENDMOD ?C?PLDPTR - ------- MODULE ?C?PLDOPTR - C:01B0H PUBLIC ?C?PLDOPTR + C:016EH PUBLIC ?C?PLDOPTR ------- ENDMOD ?C?PLDOPTR ------- MODULE ?C?ICALL - C:01E0H PUBLIC ?C?ICALL - C:01E4H PUBLIC ?C?ICALL2 + C:019EH PUBLIC ?C?ICALL + C:01A2H PUBLIC ?C?ICALL2 ------- ENDMOD ?C?ICALL ------- MODULE RAND - X:004DH PUBLIC ?SRAND?BYTE - C:0BCFH PUBLIC RAND - C:0C0DH PUBLIC _SRAND + X:005FH PUBLIC ?SRAND?BYTE + C:0DAEH PUBLIC RAND + C:0DECH PUBLIC _SRAND ------- ENDMOD RAND ------- MODULE MALLOC - C:06AAH PUBLIC _malloc + C:06A8H PUBLIC _malloc ------- ENDMOD MALLOC ------- MODULE CALLOC - C:0C5EH PUBLIC _calloc + C:0DFBH PUBLIC _calloc ------- ENDMOD CALLOC ------- MODULE ?C?IMUL - C:01E6H PUBLIC ?C?IMUL + C:01A4H PUBLIC ?C?IMUL ------- ENDMOD ?C?IMUL ------- MODULE ?C?UIDIV - C:01F8H PUBLIC ?C?UIDIV + C:01B6H PUBLIC ?C?UIDIV ------- ENDMOD ?C?UIDIV ------- MODULE ?C?LLDXDATA - C:024DH PUBLIC ?C?LLDXDATA + C:020BH PUBLIC ?C?LLDXDATA ------- ENDMOD ?C?LLDXDATA ------- MODULE ?C?LSTXDATA - C:0259H PUBLIC ?C?LSTXDATA + C:0217H PUBLIC ?C?LSTXDATA ------- ENDMOD ?C?LSTXDATA ------- MODULE ?C?PLDIDATA - C:0265H PUBLIC ?C?PLDIDATA + C:0223H PUBLIC ?C?PLDIDATA ------- ENDMOD ?C?PLDIDATA ------- MODULE ?C?PLDXDATA - C:026EH PUBLIC ?C?PLDXDATA + C:022CH PUBLIC ?C?PLDXDATA + BL51 BANKED LINKER/LOCATER V6.22.2.0 06/05/2022 20:24:54 PAGE 16 + + ------- ENDMOD ?C?PLDXDATA - BL51 BANKED LINKER/LOCATER V6.22.2.0 06/04/2022 22:31:48 PAGE 14 - - ------- MODULE ?C?PLDPDATA - C:0277H PUBLIC ?C?PLDPDATA + C:0235H PUBLIC ?C?PLDPDATA ------- ENDMOD ?C?PLDPDATA ------- MODULE ?C?PLDCODE - C:0280H PUBLIC ?C?PLDCODE + C:023EH PUBLIC ?C?PLDCODE ------- ENDMOD ?C?PLDCODE ------- MODULE ?C?MEMSET - C:028CH PUBLIC ?C?MEMSET + C:024AH PUBLIC ?C?MEMSET ------- ENDMOD ?C?MEMSET ------- MODULE INIT_MEM - X:0015H PUBLIC __mem_avail__ - C:0CDCH PUBLIC _init_mempool + X:002AH PUBLIC __mem_avail__ + C:0E79H PUBLIC _init_mempool ------- ENDMOD INIT_MEM *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS @@ -808,9 +930,6 @@ SYMBOL TABLE OF MODULE: .\Objects\MCU_1 (MAIN) *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?TEST?DISPLAY -*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS - SEGMENT: ?PR?_DRAWFULLIMG?DRAW - *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?BLOCKINIT?BLOCK @@ -823,5 +942,5 @@ SYMBOL TABLE OF MODULE: .\Objects\MCU_1 (MAIN) *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_INIT_MEMPOOL?INIT_MEM -Program Size: data=9.0 xdata=87 code=3587 -LINK/LOCATE RUN COMPLETE. 8 WARNING(S), 0 ERROR(S) +Program Size: data=9.0 xdata=104 code=3984 +LINK/LOCATE RUN COMPLETE. 7 WARNING(S), 0 ERROR(S) diff --git a/MCU/MCU_REAL _FINAL/draw.c b/MCU/MCU_REAL _FINAL/draw.c index 41e7b10..ae0c5b7 100644 --- a/MCU/MCU_REAL _FINAL/draw.c +++ b/MCU/MCU_REAL _FINAL/draw.c @@ -84,8 +84,6 @@ void drawNAME() for(j = 0; j < 48; j++) { - - CSA = 1; CSB = 0; RS = 0; @@ -113,26 +111,37 @@ void drawNAME() write(); } } -void drawFullIMG(unsigned char img[]) +void drawMAINMENU() { - unsigned int j,i; + unsigned int j; - for(j = 0; j < 64; j++) - for(i=0;i<8;i++) + for(j = 0; j < 32; j++) { CSA = 1; CSB = 0; RS = 0; RW = 0; - P1 = 0xb8 + i; + P1 = 0xb8 + 0; write(); P1 = 0X40 + j; - write(); //页i列j屏A + write(); //页0列j屏A RS = 1; RW = 0; - P1 = img[j - 1]; + P1 = MAINMANU_PAGE0[j - 1]; + write(); + + RS = 0; + RW = 0; + P1 = 0xb8 + 1; + write(); + P1 = 0X40 + j; + write(); //页1列j屏A + + RS = 1; + RW = 0; + P1 = MAINMANU_PAGE1[j - 1]; write(); } } \ No newline at end of file diff --git a/MCU/MCU_REAL _FINAL/draw.h b/MCU/MCU_REAL _FINAL/draw.h index 5279904..95c9451 100644 --- a/MCU/MCU_REAL _FINAL/draw.h +++ b/MCU/MCU_REAL _FINAL/draw.h @@ -3,5 +3,5 @@ void drawNAME(); void drawNUMBER(); - +void drawMAINMENU(); #endif \ No newline at end of file diff --git a/MCU/MCU_REAL _FINAL/img.h b/MCU/MCU_REAL _FINAL/img.h index 8fbb701..0f81900 100644 --- a/MCU/MCU_REAL _FINAL/img.h +++ b/MCU/MCU_REAL _FINAL/img.h @@ -52,7 +52,15 @@ code unsigned char NUMBER_RPAGE1[]= 0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00, }; - +//第一行:菜单 +code unsigned char MAINMANU_PAGE0[]={ +0x04,0x04,0x44,0xC4,0x4F,0x44,0x44,0xC4,0x24,0x24,0x2F,0xB4,0x24,0x04,0x04,0x00, +0x00,0x00,0xF8,0x49,0x4A,0x4C,0x48,0xF8,0x48,0x4C,0x4A,0x49,0xF8,0x00,0x00,0x00, +}; +code unsigned char MAINMANU_PAGE1[]={ +0x40,0x44,0x24,0x24,0x15,0x0C,0x04,0xFE,0x04,0x0C,0x15,0x24,0x24,0x44,0x40,0x00, +0x10,0x10,0x13,0x12,0x12,0x12,0x12,0xFF,0x12,0x12,0x12,0x12,0x13,0x10,0x10,0x00, +}; //void writeData(unsigned char d) //{ diff --git a/MCU/MCU_REAL _FINAL/main.c b/MCU/MCU_REAL _FINAL/main.c index 5a97064..c68f5f3 100644 --- a/MCU/MCU_REAL _FINAL/main.c +++ b/MCU/MCU_REAL _FINAL/main.c @@ -1,27 +1,90 @@ -#include "delay.h" #include "main.h" -#include "display.h" -#include "menu.h" -#include "draw.h" -#include "button.h" -extern Menu *NOW; -enum OPR opr=idle; -sbit RS = P2 ^ 0; -sbit RW = P2 ^ 1; -sbit E = P2 ^ 2; -sbit CSA = P2 ^ 4; -sbit CSB = P2 ^ 5; +#define RELOAD (65535-9216) //定时器填充值(1ms) +unsigned char TH, TL; + +extern Menu *NOW; //菜单指针 +enum OPR opr = idle; //按键状态 + +unsigned char freshScreenTriger = 0; + +void int0() interrupt 0 //外部中断:检测左右旋钮 +{ +// IE0 = 0; //消抖 +// delay(20); +// IE0 = 0; +// +// if(PIN_3 == 0) +// { +// delay(10); +// if(PIN_3 == 0) +// opr = left; +// } +// else if(PIN_3 == 1) +// { +// delay(10); +// if(PIN_3 == 1) +// opr = right; +// } + unsigned char LS, CS, flag = 0; + LS = PIN_3; + while(!PIN_1) + { + CS = PIN_3; + flag = 1; + } + if(flag == 1) + { + if((LS == 0) && (CS == 1)) + opr = right; + if((LS == 1) && (CS == 0)) + opr = left; + } + +} + +void time() interrupt 1 //定时中断:检测确认按键 +{ + EA = 0; + TH0 = TH; + TL0 = TL0 + TL; + TL0 = TL0 + 23; + + if(PIN_4 == 0) + { + delay(10); + if(PIN_4 == 0) + opr = confirm; + } + EA = 1; +} -sbit LCDRST =P2^3; int main() { - menuInit(); - - - while(1) - { - NOW->f(NOW,opr); + TH = RELOAD / 256; //填充值预计算 + TL = RELOAD - (RELOAD / 256) * 256; + TH0 = TH; + TL0 = TL; - } + TMOD = 0x01; //使用定时器T0,高4位全为0,低4位GATE=0,C/T=0,采用工作方式1,M1=0,M1=1 + + TR0 = 1; //启动定时器0 + EA = 1; //打开中断总开关 + ET0 = 1; //打开定时器0中断开关 + + + IT0 = 1; //中断触发方式为下边沿触发 + EX0 = 1; //打开外部中断0 + + EA = 1; //打开中断总开关 + + displayInit(); //屏幕初始化 + clear(); + menuInit(); //菜单及其他初始化 + + while(1) + { + + NOW->f(NOW, opr); + } } \ No newline at end of file diff --git a/MCU/MCU_REAL _FINAL/main.h b/MCU/MCU_REAL _FINAL/main.h index 2656732..0443b9e 100644 --- a/MCU/MCU_REAL _FINAL/main.h +++ b/MCU/MCU_REAL _FINAL/main.h @@ -5,7 +5,21 @@ #include #include #include "display.h" +#include "menu.h" +#include "draw.h" +#include "button.h" +#include "delay.h" +sbit RS = P2 ^ 0; +sbit RW = P2 ^ 1; +sbit E = P2 ^ 2; +sbit CSA = P2 ^ 4; +sbit CSB = P2 ^ 5; +sbit LCDRST =P2^3; +sbit PIN_CONFIRM=P3^5; +sbit PIN_1=P3^2; +sbit PIN_3=P3^4; +sbit PIN_4=P3^5; #endif \ No newline at end of file diff --git a/MCU/MCU_REAL _FINAL/menu.c b/MCU/MCU_REAL _FINAL/menu.c index 7702094..c00b34c 100644 --- a/MCU/MCU_REAL _FINAL/menu.c +++ b/MCU/MCU_REAL _FINAL/menu.c @@ -2,34 +2,67 @@ #include "display.h" #include "delay.h" #include "draw.h" - -Menu M_MAINMANU;//主菜单 +#include +Menu M_STARTUP; +Menu M_MAINMENU;//主菜单 Menu M_PLAYMODE1; //俄罗斯方块 Menu* NOW; //当前菜单指针 +Menu* LAST=NULL;//上一个状态的菜单 //初始菜单 -void m_startup(struct _menu* this,enum OPR opr) +void m_startup(struct _menu* this, enum OPR opr) { - displayInit(); - clear(); - drawNAME(); - delay(1000); - drawNUMBER(); - delay(3000); -// clear(); - NOW=this->n; + + + if(LAST != &M_STARTUP) + { + LAST = &M_STARTUP; + + drawNAME(); //绘制名字 + delay(1000); + drawNUMBER(); //绘制学号 + } + + if(opr == confirm) + { + opr = idle; + NOW = this->n; //转向下一菜单 + clear(); + } + } -Menu M_STARTUP={&M_MAINMANU,m_startup}; + +void m_mainmenu(struct _menu* this, enum OPR opr) +{ + if(LAST != &M_MAINMENU) + { + LAST = &M_MAINMENU; + drawMAINMENU(); + } + + if(opr == left) + { + + opr = idle; + NOW = &M_STARTUP; + clear(); + } +} + void menuInit() { -NOW=&M_STARTUP; + M_STARTUP.n = &M_MAINMENU; + M_STARTUP.f = m_startup; + + M_MAINMENU.f = m_mainmenu; + NOW = &M_STARTUP; } diff --git a/MCU/MCU_REAL _FINAL/menu.h b/MCU/MCU_REAL _FINAL/menu.h index a216675..33c0fb1 100644 --- a/MCU/MCU_REAL _FINAL/menu.h +++ b/MCU/MCU_REAL _FINAL/menu.h @@ -4,6 +4,8 @@ typedef struct _menu { + unsigned char *local; + unsigned char *len; struct _menu* n; void(*f)(struct _menu* this, enum OPR opr); }Menu;