Subversion Repositories pentevo

Rev

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

  1. .MACRO  PUSHW
  2.         PUSH    WL
  3.         PUSH    WH
  4. .ENDMACRO
  5.  
  6. .MACRO  POPW
  7.         POP     WH
  8.         POP     WL
  9. .ENDMACRO
  10.  
  11. .MACRO  PUSHX
  12.         PUSH    XL
  13.         PUSH    XH
  14. .ENDMACRO
  15.  
  16. .MACRO  POPX
  17.         POP     XH
  18.         POP     XL
  19. .ENDMACRO
  20.  
  21. .MACRO  PUSHY
  22.         PUSH    YL
  23.         PUSH    YH
  24. .ENDMACRO
  25.  
  26. .MACRO  POPY
  27.         POP     YH
  28.         POP     YL
  29. .ENDMACRO
  30.  
  31. .MACRO  PUSHZ
  32.         PUSH    ZL
  33.         PUSH    ZH
  34. .ENDMACRO
  35.  
  36. .MACRO  POPZ
  37.         POP     ZH
  38.         POP     ZL
  39. .ENDMACRO
  40.  
  41. .MACRO  LDIW
  42.         LDI     WL,LOW(@0)
  43.         LDI     WH,HIGH(@0)
  44. .ENDMACRO
  45.  
  46. .MACRO  LDIX
  47.         LDI     XL,LOW(@0)
  48.         LDI     XH,HIGH(@0)
  49. .ENDMACRO
  50.  
  51. .MACRO  LDIY
  52.         LDI     YL,LOW(@0)
  53.         LDI     YH,HIGH(@0)
  54. .ENDMACRO
  55.  
  56. .MACRO  LDIZ
  57.         LDI     ZL,LOW(@0)
  58.         LDI     ZH,HIGH(@0)
  59. .ENDMACRO
  60.  
  61. .MACRO  LDSW
  62.         LDS     WL,@0
  63.         LDS     WH,@0+1
  64. .ENDMACRO
  65.  
  66. .MACRO  LDSX
  67.         LDS     XL,@0
  68.         LDS     XH,@0+1
  69. .ENDMACRO
  70.  
  71. .MACRO  LDSY
  72.         LDS     YL,@0
  73.         LDS     YH,@0+1
  74. .ENDMACRO
  75.  
  76. .MACRO  LDSZ
  77.         LDS     ZL,@0
  78.         LDS     ZH,@0+1
  79. .ENDMACRO
  80.  
  81. .MACRO  STSW
  82.         STS     @0,WL
  83.         STS     @0+1,WH
  84. .ENDMACRO
  85.  
  86. .MACRO  STSX
  87.         STS     @0,XL
  88.         STS     @0+1,XH
  89. .ENDMACRO
  90.  
  91. .MACRO  STSY
  92.         STS     @0,YL
  93.         STS     @0+1,YH
  94. .ENDMACRO
  95.  
  96. .MACRO  STSZ
  97.         STS     @0,ZL
  98.         STS     @0+1,ZH
  99. .ENDMACRO
  100.  
  101. ; @0 - port, @1 - regs
  102. .MACRO  OUTPORT
  103.         STS     @0+$20*(@0<$40),@1
  104. .ENDMACRO
  105.  
  106. ; @0 - regs, @1 - port
  107. .MACRO  INPORT
  108.         LDS     @0,@1+$20*(@1<$40)
  109. .ENDMACRO
  110.  
  111. ; ADDI reg,const   Осторожно с флагами!
  112. .MACRO  ADDI
  113.         SUBI    @0,(-(@1)&$FF)
  114. .ENDMACRO
  115. ;X+const16
  116. .MACRO  ADIWX
  117.         SUBI    XL,LOW(-@0&$FFFF)
  118.         SBCI    XH,HIGH(-@0&$FFFF)
  119. .ENDMACRO
  120.  
  121. .MACRO  ADIWY
  122.         SUBI    YL,LOW(-@0&$FFFF)
  123.         SBCI    YH,HIGH(-@0&$FFFF)
  124. .ENDMACRO
  125.  
  126. .MACRO  ADIWZ
  127.         SUBI    ZL,LOW(-@0&$FFFF)
  128.         SBCI    ZH,HIGH(-@0&$FFFF)
  129. .ENDMACRO
  130.  
  131. .MACRO  GETMEM
  132.         SBIW    YL,@0
  133. .ENDMACRO
  134.  
  135. .MACRO  FREEMEM
  136.         ADIW    YL,@0
  137. .ENDMACRO
  138.  
  139. .MACRO  LDH
  140.         LDD     @0,Y+@1
  141. .ENDMACRO
  142.  
  143. .MACRO  STH
  144.         STD     Y+@0,@1
  145. .ENDMACRO
  146.  
  147. ;max. 23703 us
  148. ;CPU @ 11059200Hz
  149. .MACRO  DELAY_US
  150. .IF (@0<70)
  151.         LDI     WL,LOW(@0*36864/10000)
  152. DLY_US1:DEC     WL      ;1
  153.         BRNE    DLY_US1 ;2
  154. .ELSE
  155.         LDI     WL,LOW(@0*27648/10000)
  156.         LDI     WH,HIGH(@0*27648/10000)
  157. DLY_US2:SBIW    WL,1    ;2
  158.         BRNE    DLY_US2 ;2
  159. .ENDIF
  160. .ENDMACRO
  161.