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 |