Subversion Repositories ngs

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
115 savelij 1
 
2
;LAST UPDATE: 16.04.2014 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
ATMPORT         MACRO PORT,BYTE
72
                LD BC,PORT
73
                LD A,BYTE
74
                OUT (C),A
75
                ENDM
76
 
77
EVOPORT         MACRO PORT,BYTE
78
                LD BC,PORT
79
                LD A,BYTE
80
                OUT (C),A
81
                ENDM
82
 
83
PEC_ON          MACRO BYTE
84
                IN A,(PEVO_CONF)
85
                OR BYTE
86
                OUT (PEVO_CONF),A
87
                ENDM
88
 
89
PEC_OFF         MACRO BYTE
90
                IN A,(PEVO_CONF)
91
                AND BYTE!0XFF
92
                OUT (PEVO_CONF),A
93
                ENDM
94
 
95
SIZEDATE        EQU STRLEN (DATE)
96
 
97
                IF SIZEDATE=10
98
MMOUNTH         EQU (CHARFROMSTR (DATE,0)-0X30)*10+(CHARFROMSTR (DATE,1)-0X30)
99
DDATE           EQU (CHARFROMSTR (DATE,3)-0X30)*10+(CHARFROMSTR (DATE,4)-0X30)
100
YYEAR           EQU (CHARFROMSTR (DATE,8)-0X30)*10+(CHARFROMSTR (DATE,9)-0X30)
101
                ELSEIF SIZEDATE=8
102
MMOUNTH         EQU (CHARFROMSTR (DATE,0)-0X30)
103
DDATE           EQU (CHARFROMSTR (DATE,2)-0X30)
104
YYEAR           EQU (CHARFROMSTR (DATE,6)-0X30)*10+(CHARFROMSTR (DATE,7)-0X30)
105
                ELSEIF (CHARFROMSTR (DATE,1))=0X2F
106
MMOUNTH         EQU (CHARFROMSTR (DATE,0)-0X30)
107
DDATE           EQU (CHARFROMSTR (DATE,2)-0X30)*10+(CHARFROMSTR (DATE,3)-0X30)
108
YYEAR           EQU (CHARFROMSTR (DATE,7)-0X30)*10+(CHARFROMSTR (DATE,8)-0X30)
109
                ELSE
110
MMOUNTH         EQU (CHARFROMSTR (DATE,0)-0X30)*10+(CHARFROMSTR (DATE,1)-0X30)
111
DDATE           EQU (CHARFROMSTR (DATE,3)-0X30)
112
YYEAR           EQU (CHARFROMSTR (DATE,7)-0X30)*10+(CHARFROMSTR (DATE,8)-0X30)
113
                ENDIF
114
DATA_VERS       EQU DDATE+(MMOUNTH<<5)+(YYEAR<<9)+0X8000                        ; 
115
 
116
TEXTDATE        MACRO
117
                IF DDATE<10
118
TDATE           DB DDATE+0X30
119
                ELSE
120
TDATE           DB ((DDATE/10)+0X30),(DDATE#10)+0X30
121
                ENDIF
122
                DB "."
123
                IF MMOUNTH<10
124
TMOUNTH         DB MMOUNTH+0X30
125
                ELSE
126
TMOUNTH         DB MMOUNTH/10+0X30,MMOUNTH#10+0X30
127
                ENDIF
128
                DB ".",CHARFROMSTR (DATE,SIZEDATE-4),CHARFROMSTR (DATE,SIZEDATE-3)
129
                DB CHARFROMSTR (DATE,SIZEDATE-2),CHARFROMSTR (DATE,SIZEDATE-1)
130
                ENDM