Subversion Repositories pentevo

Rev

Rev 277 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

  1. ;
  2. ;--------------------------------------
  3. ;
  4. PRINT_SHORT_VERS:
  5.         LDIZ    $DFFC
  6.         OUT     RAMPZ,ONE
  7.         ELPM    XL,Z+
  8.         ELPM    XH,Z
  9.         MOV     DATA,XL
  10.         ANDI    DATA,$1F
  11.         BREQ    PRVERS9
  12.         MOV     TEMP,XH
  13.         LSL     XL
  14.         ROL     TEMP
  15.         LSL     XL
  16.         ROL     TEMP
  17.         LSL     XL
  18.         ROL     TEMP
  19.         ANDI    TEMP,$0F
  20.         BREQ    PRVERS9
  21.         CPI     TEMP,13
  22.         BRCC    PRVERS9
  23.         MOV     COUNT,XH
  24.         LSR     COUNT
  25.         ANDI    COUNT,$3F
  26.         CPI     COUNT,9
  27.         BRCS    PRVERS9
  28.         PUSH    DATA
  29.         LDI     DATA,$28 ;"("
  30.         RCALL   PUTCHAR
  31.         MOV     DATA,COUNT
  32.         RCALL   DECBYTE
  33.         MOV     DATA,TEMP
  34.         RCALL   DECBYTE
  35.         POP     DATA
  36.         RCALL   DECBYTE
  37.         LDI     DATA,$29 ;")"
  38.         RCALL   PUTCHAR
  39. PRVERS9:RET
  40. ;
  41. ;--------------------------------------
  42. ;in:    Z == указатель на структуру строк (в младших 64K)
  43. PRINTMLSTR:
  44.         ADD     ZL,LANG
  45.         ADC     ZH,NULL
  46.         LPM     WL,Z+
  47.         LPM     WH,Z+
  48.         MOVW    ZL,WL
  49. ;
  50. ; - - - - - - - - - - - - - - - - - - -
  51. ;in:    Z == указатель на строку (в младших 64K)
  52. PRINTSTRZ:
  53. PRSTRZ1:LPM     DATA,Z+
  54.         TST     DATA
  55.         BREQ    PRSTRZ2
  56.         RCALL   PUTCHAR
  57.         RJMP    PRSTRZ1
  58. PRSTRZ2:RET
  59. ;
  60. ;--------------------------------------
  61. ;out byte in dec
  62. ;in:    DATA == byte (00..99)
  63. DECBYTE:SUBI    DATA,208
  64.         SBRS    DATA,7
  65.         SUBI    DATA,48
  66.         SUBI    DATA,232
  67.         SBRS    DATA,6
  68.         SUBI    DATA,24
  69.         SUBI    DATA,244
  70.         SBRS    DATA,5
  71.         SUBI    DATA,12
  72.         SUBI    DATA,250
  73.         SBRS    DATA,4
  74.         SUBI    DATA,6
  75. ;
  76. ; - - - - - - - - - - - - - - - - - - -
  77. ;out byte in hex
  78. ;in:    DATA == byte
  79. HEXBYTE:PUSH    DATA
  80.         SWAP    DATA
  81.         RCALL   HEXHALF
  82.         POP     DATA
  83. HEXHALF:ANDI    DATA,$0F
  84.         CPI     DATA,$0A
  85.         BRCS    HEXBYT1
  86.         ADDI    DATA,$07
  87. HEXBYT1:ADDI    DATA,$30
  88. ;
  89. ; - - - - - - - - - - - - - - - - - - -
  90. ;
  91. PUTCHAR:SBRC    FLAGS1,0
  92.         CALL    UARTDIRECT_PUTCHAR
  93.         SBRC    FLAGS1,1
  94.         CALL    UART_PUTCHAR
  95.         SBRC    FLAGS1,2
  96.         CALL    SCR_PUTCHAR
  97.         RET
  98. ;
  99. ;--------------------------------------
  100. ;out word in dec (right justify)
  101. ;in:    X == word
  102. DECWORD:LDIZ    DECWTAB*2
  103.         LDI     COUNT,4
  104.         CLR     DATA
  105. DECW5:  LPM     WL,Z+
  106.         LPM     WH,Z+
  107. DECW2:  SUB     XL,WL
  108.         SBC     XH,WH
  109.         BRCS    DECW1
  110.         INC     DATA
  111.         RJMP    DECW2
  112. DECW1:  ADD     XL,WL
  113.         ADC     XH,WH
  114.         TST     DATA
  115.         BRNE    DECW3
  116.         LDI     DATA,$20
  117.         RCALL   DECWPC
  118.         CLR     DATA
  119.         RJMP    DECW4
  120. DECW3:  ORI     DATA,$30
  121.         RCALL   DECWPC
  122.         LDI     DATA,$30
  123. DECW4:  DEC     COUNT
  124.         BRNE    DECW5
  125.         MOV     DATA,XL
  126.         ORI     DATA,$30
  127.         RJMP    PUTCHAR
  128. DECWPC: PUSHZ
  129.         PUSHX
  130.         PUSH    COUNT
  131.         RCALL   PUTCHAR
  132.         POP     COUNT
  133.         POPX
  134.         POPZ
  135.         RET
  136. DECWTAB:.DW     10000,1000,100,10
  137. ;
  138. ;--------------------------------------
  139. ;in:    DATA
  140. HEXBYTE_FOR_DUMP:
  141.         PUSH    DATA
  142.         RCALL   HEXBYTE
  143.         LDI     DATA,$20
  144.         RCALL   PUTCHAR
  145.         POP     DATA
  146.         RET
  147. ;
  148. ;--------------------------------------
  149. ;
  150. PUTCHAR_FOR_DUMP:
  151.         CPI     DATA,$20
  152.         BRCC    PCHAR4D
  153.         LDI     DATA,$2E
  154. PCHAR4D:RJMP    PUTCHAR
  155. ;
  156. ;--------------------------------------
  157. ;
  158.