📄 sdrv_msg.s01
字号:
NAME sdrv_msg(16)
RSEG BAC_MSG(0)
RSEG BAD_MSG(0)
RSEG BAS_MSG(0)
EXTERN BAPI_PutS
PUBLIC Sdrv_MsgBox
EXTERN Sdrv_SetTextPos
PUBLIC i
PUBLIC message
PUBLIC string
EXTERN ?CLZ80L_4_04_L00
EXTERN ?SS_RSH_L02
RSEG BAC_MSG
Sdrv_MsgBox:
; 1. /*
; 2. ********************************************************************************
; 3. * ACTOS
; 4. * Show String
; 5. *
; 6. * (c) Copyright 2002-2003, Actions Co,Ld.
; 7. * All Right Reserved
; 8. *
; 9. * File : Sdrv_msg.msa
; 10. * By : Chliang
; 11. * Version: 1> v1.00 first version date
; 12. ********************************************************************************
; 13. */
; 14.
; 15. #include "display.h"
; 16. #include "Drv_S6B33B0A.h"
; 17.
; 18. #pragma memory=dataseg(BAD_MSG)
; 19. char string[7];
; 20. char i;
; 21. //region_t updrgn;
; 22. //int mb_m,mb_n;
; 23. #pragma memory=default
; 24.
; 25. #pragma memory=constseg(BAS_MSG)
; 26. char message[]=" MsgNo:0x";
; 27. #pragma memory=default
; 28.
; 29.
; 30. #pragma codeseg(BAC_MSG)
; 31. void Sdrv_MsgBox(int MsgNo,char x,char y)
; 32. {
PUSH IX
PUSH BC
PUSH DE
POP IX
; 33. string[4]=' ';
LD A,32
LD (string+4),A
; 34. string[5]=' ';
LD (string+5),A
; 35. i= (MsgNo >>12) & 0x0f;
LD B,12
CALL ?0020
; 36. if(i<0x0a)
JR NC,?0001
?0000:
; 37. string[0] = i + '0';
ADD A,48
JR ?0016
; 38. else
?0001:
; 39. string[0] = i + 'A' -10;
ADD A,55
?0016:
LD (string),A
?0002:
; 40.
; 41.
; 42. i= (MsgNo >>8) & 0x0f;
LD B,8
PUSH IX
POP DE
CALL ?0020
; 43. if(i<0x0a)
JR NC,?0004
?0003:
; 44. string[1] = i + '0';
ADD A,48
JR ?0017
; 45. else
?0004:
; 46. string[1] = i + 'A' -10;
ADD A,55
?0017:
LD (string+1),A
?0005:
; 47.
; 48.
; 49. i= (MsgNo >> 4) & 0x0f;
LD B,4
PUSH IX
POP DE
CALL ?SS_RSH_L02
LD A,E
AND 15
; 50. if(i< 0x0a )
CP 10
JR NC,?0007
?0006:
; 51. string[2] = i + '0';
ADD A,48
JR ?0018
; 52. else
?0007:
; 53. string[2] = i + 'A' -10;
ADD A,55
?0018:
LD (string+2),A
?0008:
; 54.
; 55.
; 56. i= MsgNo & 0x0f;
PUSH IX
POP HL
LD A,L
AND 15
LD (i),A
; 57. if(i<0x0a)
CP 10
JR NC,?0010
?0009:
; 58. string[3] = i + '0';
ADD A,48
JR ?0019
; 59. else
?0010:
; 60. string[3] = i + 'A' -10;
ADD A,55
?0019:
LD (string+3),A
?0011:
; 61.
; 62. Sdrv_SetTextPos(x,y);
LD HL,6
ADD HL,SP
LD C,(HL)
LD HL,0
ADD HL,SP
LD E,(HL)
CALL Sdrv_SetTextPos
; 63. BAPI_PutS(message,-1);
LD C,255
LD DE,message
CALL BAPI_PutS
; 64. BAPI_PutS(string,6);
LD C,6
LD DE,string
CALL BAPI_PutS
; 65. //Sdrv_PutS(message,-1);
; 66. //Sdrv_PutS(string,6);
; 67. return;
; 68. }
POP HL
POP IX
RET
?0020:
CALL ?SS_RSH_L02
LD A,E
AND 15
LD (i),A
CP 10
RET
; 69.
RSEG BAD_MSG
string:
DEFS 7
i:
DEFS 1
RSEG BAS_MSG
message:
DEFB ' MsgNo:0x'
DEFB 0
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -