Subversion Repositories NedoOS

Rev

Rev 1031 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log

Rev 1031 Rev 1051
Line 1... Line 1...
1
;4000 - страница команд (может подменяться при доступе к данным, но потом вызывается OUTcom)
1
;4000 - страница команд (может подменяться при доступе к данным, но потом вызывается OUTcom)
2
;8000,c000 - страницы в 8000,c000
2
;8000,c000 - страницы в 8000,c000
3
 
3
 
-
 
4
;(для extpg5) putmem всегда пишет через регистр C! так можно перехватывать запись в экран
-
 
5
 
4
        MACRO get
6
        MACRO get
5
        LD A,(DE)
7
        LD A,(DE)
6
        ENDM
8
        ENDM
7
 
9
 
8
        MACRO getHL
10
        MACRO getHL
Line 60... Line 62...
60
        and 3 ;a=0,1,2,3 for 4000,8000,c000,0000
62
        and 3 ;a=0,1,2,3 for 4000,8000,c000,0000
61
        res 7,d
63
        res 7,d
62
        set 6,d
64
        set 6,d
63
        ld (curquart),a
65
        ld (curquart),a
64
        ld l,a
66
        ld l,a
65
        ld h,currom/256
67
        ld h,emulcurpg0000/256
66
        LD A,(HL)
68
        LD A,(HL)
67
        OUTPGCOM
69
        OUTPGCOM
68
        ld a,0xc9
70
        ld a,0xc9
69
        ld (set4000com),a
71
        ld (set4000com),a
70
        ENDM
72
        ENDM
Line 84... Line 86...
84
;портит BC! на выходе CY=A15
86
;портит BC! на выходе CY=A15
85
        MACRO putmem ;a<=[hl]
87
        MACRO putmem ;a<=[hl]
86
        ld c,a
88
        ld c,a
87
        ld a,h
89
        ld a,h
88
        add a,a
90
        add a,a
89
        call nc,setmem00004000forwrite
91
        call nc,setmem00004000writec
90
       if extpg5
92
       if extpg5
91
        call c,setmem8000c000forwrite
93
        call c,setmem8000c000writec
-
 
94
       else
-
 
95
        ld (hl),c
92
       endif
96
       endif
93
        LD (HL),c
-
 
94
        ENDM
97
        ENDM
95
 
98
 
96
;портит HL,A! на выходе CY=A15
99
;портит HL,A! на выходе CY=A15
97
        MACRO getmemBC
100
        MACRO getmemBC
98
        ld a,h
101
        ld a,h
Line 111... Line 114...
111
 
114
 
112
;портит HL,A! на выходе CY=A15
115
;портит HL,A! на выходе CY=A15
113
        MACRO putmemBC
116
        MACRO putmemBC
114
        ld a,h
117
        ld a,h
115
        add a,a
118
        add a,a
116
        call nc,setmem00004000forwrite
119
        call nc,setmem00004000writec
117
       if extpg5
120
       if extpg5
118
        call c,setmem8000c000forwrite
121
        call c,setmem8000c000writec
-
 
122
       else
-
 
123
        ld (hl),c
119
       endif
124
       endif
120
        LD (HL),c
125
         ld c,b
121
       if extpg5
126
       if extpg5
122
        rra
127
        rra
123
        ld h,a
128
        ld h,a
124
        inc hl
129
        inc hl
125
       else
130
       else
Line 129... Line 134...
129
        ld h,a
134
        ld h,a
130
        INC h
135
        INC h
131
       endif
136
       endif
132
        ld a,h
137
        ld a,h
133
        add a,a
138
        add a,a
134
        call nc,setmem00004000forwrite
139
        call nc,setmem00004000writec
135
       if extpg5
140
       if extpg5
136
        call c,setmem8000c000forwrite
141
        call c,setmem8000c000writec
137
       endif
142
       endif
138
1;q
143
1;q
-
 
144
       if !extpg5
139
        LD (HL),b
145
        ld (hl),c
-
 
146
       endif
140
        ENDM
147
        ENDM