Subversion Repositories ngs

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

  1.  
  2. ;LAST UPDATE: 10.03.2013 savelij
  3.  
  4.                 RELAXED ON
  5.                 CPU Z80UNDOC
  6.  
  7. BUILD_DEBUG     EQU 1
  8.  
  9. DZ              MACRO DEFZ
  10.                 DB DEFZ,0
  11.                 ENDM
  12.  
  13. DC              MACRO DEFC
  14.                 IF STRLEN(DEFC)>1
  15.                 DB SUBSTR(DEFC,0,STRLEN(DEFC)-1)
  16.                 ENDIF
  17.                 IF STRLEN(DEFC)>0
  18.                 DB CHARFROMSTR(DEFC,STRLEN(DEFC)-1)|80H
  19.                 ENDIF
  20.                 ENDM
  21.  
  22. SUM_HOB         MACRO STR,AA,BB,CC
  23.                 DB STR
  24.                 DW AA
  25.                 DW BB
  26.                 DB 0
  27.                 DB CC
  28. $$I := 0
  29. $$S := 0
  30.                 REPT 9
  31. $$N := CHARFROMSTR (STR,STRLEN(STR)+$$S-9)
  32. $$I := ($$I+$$S+$$N+($$N*256))&0XFFFF
  33. $$S := $$S+1
  34.                 ENDM
  35. $$I := ($$I+$$S+LOW (AA)+(LOW (AA)*0X100))&0XFFFF
  36. $$S := $$S+1
  37. $$I := ($$I+$$S+HIGH (AA)+(HIGH (AA)*0X100))&0XFFFF
  38. $$S := $$S+1
  39. $$I := ($$I+$$S+LOW (BB)+(LOW (BB)*0X100))&0XFFFF
  40. $$S := $$S+1
  41. $$I := ($$I+$$S+HIGH (BB)+(HIGH (BB)*0X100))&0XFFFF
  42. $$S := $$S+1
  43. $$I := ($$I+$$S+LOW (CC)+(LOW (CC)*0X100))&0XFFFF
  44. $$S := $$S+1
  45. $$I := ($$I+$$S+HIGH (CC)+(HIGH (CC)*0X100))&0XFFFF
  46. $$S := $$S+1
  47.                 DW $$I
  48.                 ENDM
  49.  
  50. DUPL            MACRO LEN,FILL
  51. DUPL:
  52. $$N             EQU (LEN) / 1024
  53. $$M             EQU (LEN) # 1024
  54.                 REPT $$N
  55.                 DB 1024 DUP(FILL)
  56.                 ENDM
  57.                 IF $$M <> 0
  58.                 DB $$M DUP(FILL)
  59.                 ENDIF
  60.                 ENDM
  61.  
  62. HIGH            FUNCTION X,((X >> 8) & 0XFF)
  63. LOW             FUNCTION X,(X & 0XFF)
  64.  
  65. PCALL           MACRO ADR,PAGE
  66.                 RST 0X30
  67.                 DW ADR
  68.                 DB PAGE
  69.                 ENDM
  70.  
  71. EVOPORT         MACRO PORT,BYTE
  72.                 LD BC,PORT
  73.                 LD A,BYTE
  74.                 OUT (C),A
  75.                 ENDM
  76.  
  77. PEC_ON          MACRO BYTE
  78.                 IN A,(PEVO_CONF)
  79.                 OR BYTE
  80.                 OUT (PEVO_CONF),A
  81.                 ENDM
  82.  
  83. PEC_OFF         MACRO BYTE
  84.                 IN A,(PEVO_CONF)
  85.                 AND BYTE!0XFF
  86.                 OUT (PEVO_CONF),A
  87.                 ENDM
  88.  
  89. SIZEDATE        EQU STRLEN (DATE)
  90.  
  91.                 IF SIZEDATE=10
  92. MMOUNTH         EQU (CHARFROMSTR (DATE,0)-0X30)*10+(CHARFROMSTR (DATE,1)-0X30)
  93. DDATE           EQU (CHARFROMSTR (DATE,3)-0X30)*10+(CHARFROMSTR (DATE,4)-0X30)
  94. YYEAR           EQU (CHARFROMSTR (DATE,8)-0X30)*10+(CHARFROMSTR (DATE,9)-0X30)
  95.                 ELSEIF SIZEDATE=8
  96. MMOUNTH         EQU (CHARFROMSTR (DATE,0)-0X30)
  97. DDATE           EQU (CHARFROMSTR (DATE,2)-0X30)
  98. YYEAR           EQU (CHARFROMSTR (DATE,6)-0X30)*10+(CHARFROMSTR (DATE,7)-0X30)
  99.                 ELSEIF (CHARFROMSTR (DATE,1))=0X2F
  100. MMOUNTH         EQU (CHARFROMSTR (DATE,0)-0X30)
  101. DDATE           EQU (CHARFROMSTR (DATE,2)-0X30)*10+(CHARFROMSTR (DATE,3)-0X30)
  102. YYEAR           EQU (CHARFROMSTR (DATE,7)-0X30)*10+(CHARFROMSTR (DATE,8)-0X30)
  103.                 ELSE
  104. MMOUNTH         EQU (CHARFROMSTR (DATE,0)-0X30)*10+(CHARFROMSTR (DATE,1)-0X30)
  105. DDATE           EQU (CHARFROMSTR (DATE,3)-0X30)
  106. YYEAR           EQU (CHARFROMSTR (DATE,7)-0X30)*10+(CHARFROMSTR (DATE,8)-0X30)
  107.                 ENDIF
  108. DATA_VERS       EQU DDATE+(MMOUNTH<<5)+(YYEAR<<9)+0X8000                        ;УЖЕ УПАКОВАНО
  109.  
  110. TEXTDATE        MACRO
  111.                 IF DDATE<10
  112. TDATE           DB DDATE+0X30
  113.                 ELSE
  114. TDATE           DB ((DDATE/10)+0X30),(DDATE#10)+0X30
  115.                 ENDIF
  116.                 DB "."
  117.                 IF MMOUNTH<10
  118. TMOUNTH         DB MMOUNTH+0X30
  119.                 ELSE
  120. TMOUNTH         DB MMOUNTH/10+0X30,MMOUNTH#10+0X30
  121.                 ENDIF
  122.                 DB ".",CHARFROMSTR (DATE,SIZEDATE-4),CHARFROMSTR (DATE,SIZEDATE-3)
  123.                 DB CHARFROMSTR (DATE,SIZEDATE-2),CHARFROMSTR (DATE,SIZEDATE-1)
  124.                 ENDM
  125.