sdrv_functions_he.lst

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

LST
400
字号
   \   0071  210800            LD      HL,8
   \   0074  09                ADD     HL,BC
   \   0075  4D                LD      C,L
   \   0076  44                LD      B,H
   \   0077  ED5B0200          LD      DE,(region_win+2)
   \   007B  1600              LD      D,0
   \   007D  2A0000            LD      HL,(region_win)
   \   0080  62                LD      H,D
   \   0081  19                ADD     HL,DE
   \   0082  F680              OR      128
   \   0084  ED42              SBC     HL,BC
   \   0086  E28A00            JP      PO,?0054
   \   0089  AC                XOR     H
   \   008A            ?0054:
   \   008A  FA1C01            JP      M,?0070
   \   008D            ?0012:
     92                  {
     93                      DUMP(RESULT_PUTCHAR_X_ERR);
     94                      PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
     95                      return FALSE;
     96                  } 
   \   008D            ?0013:
     97                  if (region.y+ASCII_LARGE_HEIGHT_DEF > region_win.y+region_win.height)
   \   008D  ED4B0100          LD      BC,(region+1)
   \   0091  42                LD      B,D
   \   0092  211000            LD      HL,16
   \   0095  09                ADD     HL,BC
   \   0096  4D                LD      C,L
   \   0097  44                LD      B,H
   \   0098  ED5B0300          LD      DE,(region_win+3)
   \   009C  1600              LD      D,0
   \   009E  2A0100            LD      HL,(region_win+1)
   \   00A1  62                LD      H,D
   \   00A2  19                ADD     HL,DE
   \   00A3  F680              OR      128
   \   00A5  ED42              SBC     HL,BC
   \   00A7  E2AB00            JP      PO,?0055
   \   00AA  AC                XOR     H
   \   00AB            ?0055:
   \   00AB  F25101            JP      P,?0005
   \   00AE            ?0014:
     98                  {
     99                      DUMP(RESULT_PUTCHAR_Y_ERR);
    100                      PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
   \   00AE  C34501            JP      ?0071
    101                      return FALSE;
    102                  }
   \   00B1            ?0015:
    103                  break;
   \   00B1            ?0016:
    104          
    105              case CharMode1616://16*16点阵模式(汉字)
    106                  if (region.x+CHINESE_WIDTH_DEF > region_win.x+region_win.width)
   \   00B1  ED4B0000          LD      BC,(region)
   \   00B5  0600              LD      B,0
   \   00B7  211000            LD      HL,16
   \   00BA  09                ADD     HL,BC
   \   00BB  4D                LD      C,L
   \   00BC  44                LD      B,H
   \   00BD  ED5B0200          LD      DE,(region_win+2)
   \   00C1  1600              LD      D,0
   \   00C3  2A0000            LD      HL,(region_win)
   \   00C6  62                LD      H,D
   \   00C7  19                ADD     HL,DE
   \   00C8  F680              OR      128
   \   00CA  ED42              SBC     HL,BC
   \   00CC  E2D000            JP      PO,?0056
   \   00CF  AC                XOR     H
   \   00D0            ?0056:
   \   00D0  FA1C01            JP      M,?0070
   \   00D3            ?0017:
    107                  {
    108                      DUMP(RESULT_PUTCHAR_X_ERR);
    109                      PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
    110                      return FALSE;
    111                  }       
   \   00D3            ?0018:
    112                  if (region.y+CHINESE_HEIGHT_DEF > region_win.y+region_win.height)
   \   00D3  ED4B0100          LD      BC,(region+1)
   \   00D7  42                LD      B,D
   \   00D8  211000            LD      HL,16
   \   00DB  09                ADD     HL,BC
   \   00DC  4D                LD      C,L
   \   00DD  44                LD      B,H
   \   00DE  ED5B0300          LD      DE,(region_win+3)
   \   00E2  1600              LD      D,0
   \   00E4  2A0100            LD      HL,(region_win+1)
   \   00E7  62                LD      H,D
   \   00E8  19                ADD     HL,DE
   \   00E9  F680              OR      128
   \   00EB  ED42              SBC     HL,BC
   \   00ED  E2F100            JP      PO,?0057
   \   00F0  AC                XOR     H
   \   00F1            ?0057:
   \   00F1  F25101            JP      P,?0005
   \   00F4            ?0019:
    113                  {
    114                      DUMP(RESULT_PUTCHAR_Y_ERR);
    115                      PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
   \   00F4  184F              JR      ?0071
    116                      return FALSE;
    117                  }
   \   00F6            ?0020:
    118                  break;
   \   00F6            ?0021:
    119          
    120              case PicDisMode://图形显示模式
    121                  if (region.x+region.width > region_win.x+region_win.width)
   \   00F6  ED4B0200          LD      BC,(region+2)
   \   00FA  0600              LD      B,0
   \   00FC  ED5B0000          LD      DE,(region)
   \   0100  50                LD      D,B
   \   0101  69                LD      L,C
   \   0102  60                LD      H,B
   \   0103  19                ADD     HL,DE
   \   0104  4D                LD      C,L
   \   0105  44                LD      B,H
   \   0106  ED5B0200          LD      DE,(region_win+2)
   \   010A  1600              LD      D,0
   \   010C  2A0000            LD      HL,(region_win)
   \   010F  62                LD      H,D
   \   0110  19                ADD     HL,DE
   \   0111  F680              OR      128
   \   0113  ED42              SBC     HL,BC
   \   0115  E21901            JP      PO,?0058
   \   0118  AC                XOR     H
   \   0119            ?0058:
   \   0119  F22001            JP      P,?0023
   \   011C            ?0022:
    122                  {
    123                      DUMP(RESULT_PUTCHAR_X_ERR);
    124                      PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
   \   011C            ?0070:
   \   011C  3E01              LD      A,1
   \   011E  182B              JR      ?0067
    125                      return FALSE;
    126                  }
   \   0120            ?0023:
    127                  if (region.y+region.height > region_win.y+region_win.height)    
   \   0120  ED4B0300          LD      BC,(region+3)
   \   0124  42                LD      B,D
   \   0125  ED5B0100          LD      DE,(region+1)
   \   0129  50                LD      D,B
   \   012A  69                LD      L,C
   \   012B  60                LD      H,B
   \   012C  19                ADD     HL,DE
   \   012D  4D                LD      C,L
   \   012E  44                LD      B,H
   \   012F  ED5B0300          LD      DE,(region_win+3)
   \   0133  1600              LD      D,0
   \   0135  2A0100            LD      HL,(region_win+1)
   \   0138  62                LD      H,D
   \   0139  19                ADD     HL,DE
   \   013A  F680              OR      128
   \   013C  ED42              SBC     HL,BC
   \   013E  E24201            JP      PO,?0059
   \   0141  AC                XOR     H
   \   0142            ?0059:
   \   0142  F25101            JP      P,?0005
   \   0145            ?0024:
    128                  {
    129                      DUMP(RESULT_PUTCHAR_Y_ERR);
    130                      PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
   \   0145            ?0071:
   \   0145  3E02              LD      A,2
   \   0147  1802              JR      ?0067
    131                      return FALSE;
    132                  }
   \   0149            ?0025:
    133                  break;
   \   0149            ?0026:
    134          
    135              default:
    136                  DUMP(RESULT_PUTCHAR_OTHER_ERR);
    137                  PutCharErrFlag = RESULT_PUTCHAR_OTHER_ERR;//不知类型的也不显示
   \   0149  3E03              LD      A,3
   \   014B            ?0067:
   \   014B  320000            LD      (PutCharErrFlag),A
    138                  return FALSE;
   \   014E  AF                XOR     A
    139              }
   \   014F  1802              JR      ?0027
   \   0151            ?0005:
    140              return TRUE;
   \   0151  3E01              LD      A,1
    141          }
   \   0153            ?0027:
   \   0153  E1                POP     HL
   \   0154  C1                POP     BC
   \   0155  C9                RET
    142          //================================================================================
   \   0156                    END

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

⌨️ 快捷键说明

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