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

📄 sdrv_charoutrect.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 2 页
字号:
   \   00A6  0600              LD      B,0
   \   00A8  210800            LD      HL,8
   \   00AB  A7                AND     A
   \   00AC  ED42              SBC     HL,BC
   \   00AE  4D                LD      C,L
   \   00AF  44                LD      B,H
   \   00B0  FD6E02            LD      L,(IY+2)
   \   00B3  2600              LD      H,0
   \   00B5  F680              OR      128
   \   00B7  ED42              SBC     HL,BC
   \   00B9  E2BD00            JP      PO,?0024
   \   00BC  AC                XOR     H
   \   00BD            ?0024:
   \   00BD  F2C500            JP      P,?0013
   \   00C0  FD7E02            LD      A,(IY+2)
   \   00C3  1805              JR      ?0014
   \   00C5            ?0013:
   \   00C5  3E08              LD      A,8
   \   00C7  DD9608            SUB     (IX+8)
   \   00CA            ?0014:
   \   00CA  DD77FA            LD      (IX-6),A
    106          
    107                  //把黑白字模转为彩色字模放在Buff中(上区)
    108                  //BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer);
    109                  BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer + ASCII_LARGE_WIDTH_DEF);
   \   00CD  010800            LD      BC,CharPointBuffer+8
   \   00D0  110800            LD      DE,8
   \   00D3  CDA501            CALL    ?0038
    110                  //把暂时显存区的数据送到LCM
    111                  Hdrv_BuffDataTrans(DisplayBuffer+colcnt*(ASCII_LARGE_HEIGHT_DEF/2)*2,
    112                                                  (ASCII_LARGE_HEIGHT_DEF/2)*tmpwidth*2);
    113          
    114                  region.y -= ASCII_LARGE_HEIGHT_DEF/2;//Y坐标加8准备输出下区(下半个字)
   \   00D6  3A0100            LD      A,(region+1)
   \   00D9  C6F8              ADD     A,248
    115          
    116                  Hdrv_SetWindow(&region);
   \   00DB  CD9C01            CALL    ?0037
    117                  
    118                  //BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer + ASCII_LARGE_WIDTH_DEF);
    119                  BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer);
   \   00DE  010000            LD      BC,CharPointBuffer
   \   00E1  110800            LD      DE,8
   \   00E4  C36E01            JP      ?0033
    120                  //把暂时显存区的数据送到LCM
    121                  Hdrv_BuffDataTrans(DisplayBuffer+colcnt*(ASCII_LARGE_HEIGHT_DEF/2)*2, 
    122                                                  (ASCII_LARGE_HEIGHT_DEF/2)*tmpwidth*2);
    123                  //坐标移到下一个字的左上角
    124                  //region.x += ASCII_LARGE_WIDTH_DEF;
    125                  //region.y -= ASCII_LARGE_HEIGHT_DEF/2;
    126                  break;
   \   00E7            ?0015:
   \   00E7  FE02              CP      2
   \   00E9  C27101            JP      NZ,?0002
    127              
    128              case CharMode1616://16*16点阵模式(汉字)
    129                  //设置字模输出的大小(上半个汉字)
    130                  if (colcnt >= 16)
   \   00EC  DD7E08            LD      A,(IX+8)
   \   00EF  FE10              CP      16
   \   00F1  3809              JR      C,?0017
   \   00F3            ?0016:
    131                  {//计数值超出
    132                      Hdrv_SetDrawMode(DrawModeH_def);    //把显示模式设置成横向显示模
   \   00F3            ?0032:
   \   00F3  110000            LD      DE,0
   \   00F6  CD0000            CALL    Hdrv_SetDrawMode
    133                      return FALSE;
   \   00F9            ?0031:
   \   00F9  AF                XOR     A
    134                  }
   \   00FA  187D              JR      ?0022
   \   00FC            ?0017:
    135                  //确定输出区域
    136                  region.x = CRregion->x;
    137                  region.y = CRregion->y;
    138                  region.width = CRregion->width;
    139                  region.height = CHINESE_HEIGHT_DEF1-8;
    140                  region.y += CHINESE_HEIGHT_DEF1-8;//Y坐标加8准备输出下区(下半个汉字)
    141          
    142                  Hdrv_SetWindow(&region);
   \   00FC  CD8001            CALL    ?0036
    143                  
    144                  //取最小的值.
    145                  tmpwidth = (CRregion->width < (16-colcnt))? (CRregion->width):(16-colcnt); 
   \   00FF  DD4E08            LD      C,(IX+8)
   \   0102  0600              LD      B,0
   \   0104  211000            LD      HL,16
   \   0107  A7                AND     A
   \   0108  ED42              SBC     HL,BC
   \   010A  4D                LD      C,L
   \   010B  44                LD      B,H
   \   010C  FD6E02            LD      L,(IY+2)
   \   010F  2600              LD      H,0
   \   0111  F680              OR      128
   \   0113  ED42              SBC     HL,BC
   \   0115  E21901            JP      PO,?0025
   \   0118  AC                XOR     H
   \   0119            ?0025:
   \   0119  F22101            JP      P,?0019
   \   011C  FD7E02            LD      A,(IY+2)
   \   011F  1805              JR      ?0020
   \   0121            ?0019:
   \   0121  3E10              LD      A,16
   \   0123  DD9608            SUB     (IX+8)
   \   0126            ?0020:
   \   0126  DD77FA            LD      (IX-6),A
    146          
    147                  //把黑白字模转为彩色字模放在Buff中
    148                  putCharChFlag=8;
   \   0129  3E08              LD      A,8
   \   012B  320000            LD      (putCharChFlag),A
    149                  BlackCharToColor(CHINESE_WIDTH_DEF1, CharPointBuffer + CHINESE_WIDTH_DEF1);//+8
   \   012E  011000            LD      BC,CharPointBuffer+16
   \   0131  111000            LD      DE,16
   \   0134  CD0000            CALL    BlackCharToColor
    150                  putCharChFlag=8; 
   \   0137  3E08              LD      A,8
   \   0139  320000            LD      (putCharChFlag),A
    151                  //BlackCharToColor(CHINESE_WIDTH_DEF, CharPointBuffer);
    152          
    153                  //把暂时显存区的数据送到LCM
    154                  Hdrv_BuffDataTrans(DisplayBuffer+colcnt*(CHINESE_WIDTH_DEF1-8)*2, 
    155                                                  (CHINESE_WIDTH_DEF1-8)*tmpwidth*2);        
   \   013C  DD6EFA            LD      L,(IX-6)
   \   013F  2600              LD      H,0
   \   0141  29                ADD     HL,HL
   \   0142  29                ADD     HL,HL
   \   0143  29                ADD     HL,HL
   \   0144  29                ADD     HL,HL
   \   0145  4D                LD      C,L
   \   0146  44                LD      B,H
   \   0147  DD6E08            LD      L,(IX+8)
   \   014A  2600              LD      H,0
   \   014C  29                ADD     HL,HL
   \   014D  29                ADD     HL,HL
   \   014E  29                ADD     HL,HL
   \   014F  29                ADD     HL,HL
   \   0150  110000            LD      DE,DisplayBuffer
   \   0153  19                ADD     HL,DE
   \   0154  EB                EX      DE,HL
   \   0155  CD0000            CALL    Hdrv_BuffDataTrans
    156                  region.y -= CHINESE_HEIGHT_DEF1-8;//Y坐标加8准备输出下区(下半个汉字)
   \   0158  3A0100            LD      A,(region+1)
   \   015B  C6F8              ADD     A,248
   \   015D  320100            LD      (region+1),A
    157                  region.height = CHINESE_HEIGHT_DEF1-8;
   \   0160  3E08              LD      A,8
   \   0162  320300            LD      (region+3),A
    158                                          
    159                  Hdrv_SetWindow(&region);
   \   0165  CD9F01            CALL    ?0035
    160                  
    161                  //BlackCharToColor(CHINESE_WIDTH_DEF, CharPointBuffer + CHINESE_WIDTH_DEF);
    162                  BlackCharToColor(CHINESE_WIDTH_DEF1, CharPointBuffer);
   \   0168  010000            LD      BC,CharPointBuffer
   \   016B  111000            LD      DE,16
   \   016E            ?0033:
   \   016E  CDA501            CALL    ?0038
    163                  //把暂时显存区的数据送到LCM
    164                  Hdrv_BuffDataTrans(DisplayBuffer+colcnt*(CHINESE_WIDTH_DEF1-8)*2, 
    165                                                  (CHINESE_WIDTH_DEF1-8)*tmpwidth*2);
    166                  break;
   \   0171            ?0021:
    167                  
    168              default:
    169                  break;
   \   0171            ?0002:
    170              }
    171              Hdrv_SetDrawMode(DrawModeH_def);    //把显示模式设置成横向显示模
   \   0171  110000            LD      DE,0
   \   0174  CD0000            CALL    Hdrv_SetDrawMode
    172              return TRUE;
   \   0177  3E01              LD      A,1
    173          }
   \   0179            ?0022:
   \   0179  DDF9              LD      SP,IX
   \   017B  DDE1              POP     IX
   \   017D  FDE1              POP     IY
   \   017F  C9                RET
   \   0180            ?0036:
   \   0180  FD7E00            LD      A,(IY+0)
   \   0183  320000            LD      (region),A
   \   0186  FD7E01            LD      A,(IY+1)
   \   0189  320100            LD      (region+1),A
   \   018C  FD7E02            LD      A,(IY+2)
   \   018F  320200            LD      (region+2),A
   \   0192  3E08              LD      A,8
   \   0194  320300            LD      (region+3),A
   \   0197  3A0100            LD      A,(region+1)
   \   019A  C608              ADD     A,8
   \   019C            ?0037:
   \   019C  320100            LD      (region+1),A
   \   019F            ?0035:
   \   019F  110000            LD      DE,region
   \   01A2  C30000            JP      Hdrv_SetWindow
   \   01A5            ?0038:
   \   01A5  CD0000            CALL    BlackCharToColor
   \   01A8  DD6EFA            LD      L,(IX-6)
   \   01AB  2600              LD      H,0
   \   01AD  29                ADD     HL,HL
   \   01AE  29                ADD     HL,HL
   \   01AF  29                ADD     HL,HL
   \   01B0  29                ADD     HL,HL
   \   01B1  4D                LD      C,L
   \   01B2  44                LD      B,H
   \   01B3  DD6E08            LD      L,(IX+8)
   \   01B6  2600              LD      H,0
   \   01B8  29                ADD     HL,HL
   \   01B9  29                ADD     HL,HL
   \   01BA  29                ADD     HL,HL
   \   01BB  29                ADD     HL,HL
   \   01BC  110000            LD      DE,DisplayBuffer
   \   01BF  19                ADD     HL,DE
   \   01C0  EB                EX      DE,HL
   \   01C1  CD0000            CALL    Hdrv_BuffDataTrans
   \   01C4  C9                RET
   \   01C5                    END

Errors: none
Warnings: none
Code size: 453
Constant size: 0
Static variable size: Data(0) Iram(0)

⌨️ 快捷键说明

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