sdrv_functions_thai.lst

来自「一种彩屏驱动以及画点,填充图片和填充数据的一些程序」· LST 代码 · 共 438 行 · 第 1/2 页

LST
438
字号
   \   0064  210600            LD      HL,6
   \   0067  09                ADD     HL,BC
   \   0068  4D                LD      C,L
   \   0069  44                LD      B,H
   \   006A  ED5B0200          LD      DE,(region_win+2)
   \   006E  1600              LD      D,0
   \   0070  2A0000            LD      HL,(region_win)
   \   0073  62                LD      H,D
   \   0074  19                ADD     HL,DE
   \   0075  F680              OR      128
   \   0077  ED42              SBC     HL,BC
   \   0079  E27D00            JP      PO,?0056
   \   007C  AC                XOR     H
   \   007D            ?0056:
   \   007D  FA1701            JP      M,?0070
   \   0080            ?0020:
    102                  {
    103                      DUMP(RESULT_PUTCHAR_X_ERR);
    104                      PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
    105                      return FALSE;
    106                  }
   \   0080            ?0021:
    107                  if (region.y+ASCII_SMALL_HEIGHT_DEF > region_win.y+region_win.height)
   \   0080  ED4B0100          LD      BC,(region+1)
   \   0084  42                LD      B,D
   \   0085  210800            LD      HL,8
   \   0088  09                ADD     HL,BC
   \   0089  4D                LD      C,L
   \   008A  44                LD      B,H
   \   008B  ED5B0300          LD      DE,(region_win+3)
   \   008F  1600              LD      D,0
   \   0091  2A0100            LD      HL,(region_win+1)
   \   0094  62                LD      H,D
   \   0095  19                ADD     HL,DE
   \   0096  F680              OR      128
   \   0098  ED42              SBC     HL,BC
   \   009A  E29E00            JP      PO,?0057
   \   009D  AC                XOR     H
   \   009E            ?0057:
   \   009E  F24C01            JP      P,?0018
   \   00A1            ?0022:
    108                  {
    109                      DUMP(RESULT_PUTCHAR_Y_ERR);
    110                      PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
   \   00A1  C34001            JP      ?0071
    111                      return FALSE;
    112                  }                
   \   00A4            ?0023:
    113                  break;
   \   00A4            ?0024:
   \   00A4  FE01              CP      1
   \   00A6  2045              JR      NZ,?0029
    114           
    115              case CharMode0816://08*16点阵模式(ascii大字体)
    116                  if (region.x+ASCII_LARGE_WIDTH_DEF > region_win.x+region_win.width)
   \   00A8  ED4B0000          LD      BC,(region)
   \   00AC  0600              LD      B,0
   \   00AE  210800            LD      HL,8
   \   00B1  09                ADD     HL,BC
   \   00B2  4D                LD      C,L
   \   00B3  44                LD      B,H
   \   00B4  ED5B0200          LD      DE,(region_win+2)
   \   00B8  1600              LD      D,0
   \   00BA  2A0000            LD      HL,(region_win)
   \   00BD  62                LD      H,D
   \   00BE  19                ADD     HL,DE
   \   00BF  F680              OR      128
   \   00C1  ED42              SBC     HL,BC
   \   00C3  E2C700            JP      PO,?0058
   \   00C6  AC                XOR     H
   \   00C7            ?0058:
   \   00C7  FA1701            JP      M,?0070
   \   00CA            ?0025:
    117                  {
    118                      DUMP(RESULT_PUTCHAR_X_ERR);
    119                      PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
    120                      return FALSE;
    121                  } 
   \   00CA            ?0026:
    122                  if (region.y+ASCII_LARGE_HEIGHT_DEF > region_win.y+region_win.height)
   \   00CA  ED4B0100          LD      BC,(region+1)
   \   00CE  42                LD      B,D
   \   00CF  211000            LD      HL,16
   \   00D2  09                ADD     HL,BC
   \   00D3  4D                LD      C,L
   \   00D4  44                LD      B,H
   \   00D5  ED5B0300          LD      DE,(region_win+3)
   \   00D9  1600              LD      D,0
   \   00DB  2A0100            LD      HL,(region_win+1)
   \   00DE  62                LD      H,D
   \   00DF  19                ADD     HL,DE
   \   00E0  F680              OR      128
   \   00E2  ED42              SBC     HL,BC
   \   00E4  E2E800            JP      PO,?0059
   \   00E7  AC                XOR     H
   \   00E8            ?0059:
   \   00E8  F24C01            JP      P,?0018
   \   00EB            ?0027:
    123                  {
    124                      DUMP(RESULT_PUTCHAR_Y_ERR);
    125                      PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
   \   00EB  1853              JR      ?0071
    126                      return FALSE;
    127                  }
   \   00ED            ?0028:
    128                  break;
   \   00ED            ?0029:
   \   00ED  FE03              CP      3
   \   00EF  2053              JR      NZ,?0034
    129          /*
    130              case CharMode1616://16*16点阵模式(汉字)
    131                  if (region.x+CHINESE_WIDTH_DEF > region_win.x+region_win.width)
    132                  {
    133                      DUMP(RESULT_PUTCHAR_X_ERR);
    134                      PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
    135                      return FALSE;
    136                  }       
    137                  if (region.y+CHINESE_HEIGHT_DEF > region_win.y+region_win.height)
    138                  {
    139                      DUMP(RESULT_PUTCHAR_Y_ERR);
    140                      PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
    141                      return FALSE;
    142                  }
    143                  break;
    144          */
    145              case PicDisMode://图形显示模式
    146                  if (region.x+region.width > region_win.x+region_win.width)
   \   00F1  ED4B0200          LD      BC,(region+2)
   \   00F5  0600              LD      B,0
   \   00F7  ED5B0000          LD      DE,(region)
   \   00FB  50                LD      D,B
   \   00FC  69                LD      L,C
   \   00FD  60                LD      H,B
   \   00FE  19                ADD     HL,DE
   \   00FF  4D                LD      C,L
   \   0100  44                LD      B,H
   \   0101  ED5B0200          LD      DE,(region_win+2)
   \   0105  1600              LD      D,0
   \   0107  2A0000            LD      HL,(region_win)
   \   010A  62                LD      H,D
   \   010B  19                ADD     HL,DE
   \   010C  F680              OR      128
   \   010E  ED42              SBC     HL,BC
   \   0110  E21401            JP      PO,?0060
   \   0113  AC                XOR     H
   \   0114            ?0060:
   \   0114  F21B01            JP      P,?0031
   \   0117            ?0030:
    147                  {
    148                      DUMP(RESULT_PUTCHAR_X_ERR);
    149                      PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
   \   0117            ?0070:
   \   0117  3E01              LD      A,1
   \   0119  182B              JR      ?0067
    150                      return FALSE;
    151                  }
   \   011B            ?0031:
    152                  if (region.y+region.height > region_win.y+region_win.height)    
   \   011B  ED4B0300          LD      BC,(region+3)
   \   011F  42                LD      B,D
   \   0120  ED5B0100          LD      DE,(region+1)
   \   0124  50                LD      D,B
   \   0125  69                LD      L,C
   \   0126  60                LD      H,B
   \   0127  19                ADD     HL,DE
   \   0128  4D                LD      C,L
   \   0129  44                LD      B,H
   \   012A  ED5B0300          LD      DE,(region_win+3)
   \   012E  1600              LD      D,0
   \   0130  2A0100            LD      HL,(region_win+1)
   \   0133  62                LD      H,D
   \   0134  19                ADD     HL,DE
   \   0135  F680              OR      128
   \   0137  ED42              SBC     HL,BC
   \   0139  E23D01            JP      PO,?0061
   \   013C  AC                XOR     H
   \   013D            ?0061:
   \   013D  F24C01            JP      P,?0018
   \   0140            ?0032:
    153                  {
    154                      DUMP(RESULT_PUTCHAR_Y_ERR);
    155                      PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
   \   0140            ?0071:
   \   0140  3E02              LD      A,2
   \   0142  1802              JR      ?0067
    156                      return FALSE;
    157                  }
   \   0144            ?0033:
    158                  break;
   \   0144            ?0034:
    159          
    160              default:
    161                  DUMP(RESULT_PUTCHAR_OTHER_ERR);
    162                  PutCharErrFlag = RESULT_PUTCHAR_OTHER_ERR;//不知类型的也不显示
   \   0144  3E03              LD      A,3
   \   0146            ?0067:
   \   0146  320000            LD      (PutCharErrFlag),A
    163                  return FALSE;
   \   0149  AF                XOR     A
    164              }
   \   014A  1802              JR      ?0035
   \   014C            ?0018:
    165              return TRUE;
   \   014C  3E01              LD      A,1
    166          }
   \   014E            ?0035:
   \   014E  E1                POP     HL
   \   014F  C1                POP     BC
   \   0150  C9                RET
    167          //================================================================================
   \   0151                    END

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

⌨️ 快捷键说明

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