Subversion Repositories pentevo

Rev

Rev 605 | Rev 646 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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