Rev 964 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 964 | Rev 1120 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | 1 | ||
2 | ;LAST UPDATE: 07.10.2021 savelij |
2 | ; LAST UPDATE: 18.10.2023 savelij |
3 | 3 | ||
4 | RCALL MACRO ADDR |
4 | RCALL MACRO ADDR |
5 | LD SP,RADDR |
5 | LD SP,RADDR |
6 | JP ADDR |
6 | JP ADDR |
7 | IF MOMPASS > 1 |
7 | ; IF MOMPASS > 1 |
8 | RADDR DW $+2 |
8 | RADDR DW $+2 |
9 | ELSE |
9 | ; ELSE |
10 | RADDR := $+2 |
10 | ;RADDR := $+2 |
11 | ENDIF |
11 | ; ENDIF |
12 | ENDM |
12 | ENDM |
13 | 13 | ||
14 | ENT_DEF MACRO V1,V2,V3,V4 |
14 | ENT_DEF MACRO V1,V2,V3,V4 |
15 | DB V1+V2*4+V3*16+V4*64 |
15 | DB V1 + V2 * 4 + V3 * 16 + V4 * 64 |
16 | ENDM |
16 | ENDM |
17 | 17 | ||
18 | _KS_SHFT EQU 0 |
18 | BITMASK KS_RUS, 7 |
19 | _KS_CTRL EQU 1 |
19 | BITMASK KS_SCROLL, 6 |
20 | _KS_ALT EQU 2 |
20 | BITMASK KS_NUM, 5 |
21 | _KS_SHFT2 EQU 3 |
21 | BITMASK KS_CAPS, 4 |
22 | _KS_CAPS EQU 4 |
22 | BITMASK KS_SHFT2, 3 |
23 | _KS_NUM EQU 5 |
23 | BITMASK KS_ALT, 2 |
24 | _KS_SCROLL EQU 6 |
24 | BITMASK KS_CTRL, 1 |
25 | _KS_RUS EQU 7 |
25 | BITMASK KS_SHFT, 0 |
26 | 26 | ||
27 | ED_PROC EQU 0 |
27 | ED_PROC EQU 0 |
28 | ED_CHAR EQU 1 |
28 | ED_CHAR EQU 1 |
29 | ED_SCAN EQU 2 |
29 | ED_SCAN EQU 2 |
30 | 30 | ||
Line 94... | Line 94... | ||
94 | IX_BAS EQU 0X5F40 |
94 | IX_BAS EQU 0X5F40 |
95 | IX_SHIFT EQU 0X7F |
95 | IX_SHIFT EQU 0X7F |
96 | IX_BASE EQU IX_BAS+IX_SHIFT |
96 | IX_BASE EQU IX_BAS+IX_SHIFT |
97 | 97 | ||
98 | ; VARIABLES IX RELATIVE |
98 | ; VARIABLES IX RELATIVE |
- | 99 | INIT_VAR IX_BAS |
|
99 | FLAG EQU IX_BAS ;DB 0 ; DM FLAG 1 <DEFB 0 > |
100 | SETVAR FLAG, BYTE ;EQU IX_BAS ;DB 0 ; DM FLAG 1 <DEFB 0 > |
100 | FLAG1 EQU FLAG+1 ;DB 0 ; DM FLAG1 1 <DEFB 0 > |
101 | SETVAR FLAG1, BYTE ;EQU FLAG+1 ;DB 0 ; DM FLAG1 1 <DEFB 0 > |
101 | 102 | ||
102 | CUR_X EQU FLAG1+1 ;DB 0 ; DM CUR_X 1 <DEFB 0 > |
103 | SETVAR CUR_X, BYTE ;EQU FLAG1+1 ;DB 0 ; DM CUR_X 1 <DEFB 0 > |
103 | CUR_Y EQU CUR_X+1 ;DB 0 ; DM CUR_Y 1 <DEFB 0 > |
104 | SETVAR CUR_Y, BYTE ;EQU CUR_X+1 ;DB 0 ; DM CUR_Y 1 <DEFB 0 > |
104 | W_X1 EQU CUR_Y+1 ;DB 0 ; DM W_X1 1 <DEFB 0 > |
105 | SETVAR W_X1, BYTE ;EQU CUR_Y+1 ;DB 0 ; DM W_X1 1 <DEFB 0 > |
105 | W_Y1 EQU W_X1+1 ;DB 0 ; DM W_Y1 1 <DEFB 0 > |
106 | SETVAR W_Y1, BYTE ;EQU W_X1+1 ;DB 0 ; DM W_Y1 1 <DEFB 0 > |
106 | W_X2 EQU W_Y1+1 ;DB 50 ; DM W_X2 1 <DEFB 50 > |
107 | SETVAR W_X2, BYTE ;EQU W_Y1+1 ;DB 50 ; DM W_X2 1 <DEFB 50 > |
107 | W_Y2 EQU W_X2+1 ;DB 24 ; DM W_Y2 1 <DEFB 24 > |
108 | SETVAR W_Y2, BYTE ;EQU W_X2+1 ;DB 24 ; DM W_Y2 1 <DEFB 24 > |
108 | COLOR_P EQU W_Y2+1 ;DB 0 ; DM COLOR_P 1 <DEFB 0 > |
109 | SETVAR COLOR_P, BYTE ;EQU W_Y2+1 ;DB 0 ; DM COLOR_P 1 <DEFB 0 > |
109 | COLOR_I EQU COLOR_P+1 ;DB 7 ; DM COLOR_I 1 <DEFB 7 > |
110 | SETVAR COLOR_I, BYTE ;EQU COLOR_P+1 ;DB 7 ; DM COLOR_I 1 <DEFB 7 > |
110 | C_STAT EQU COLOR_I+1 ;DB 0 ; DM C_STAT 1 <DEFB 0 > |
111 | SETVAR C_STAT, BYTE ;EQU COLOR_I+1 ;DB 0 ; DM C_STAT 1 <DEFB 0 > |
111 | T_FLAG EQU C_STAT+1 ;DB 0 ; DM T_FLAG 1 <DEFB 0 > |
112 | SETVAR T_FLAG, BYTE ;EQU C_STAT+1 ;DB 0 ; DM T_FLAG 1 <DEFB 0 > |
112 | CUR_VAL EQU T_FLAG+1 ;DB 0 ; DM CUR_VAL 1 <DEFB 0 > |
113 | SETVAR CUR_VAL, BYTE ;EQU T_FLAG+1 ;DB 0 ; DM CUR_VAL 1 <DEFB 0 > |
113 | SCR_ADR EQU CUR_VAL+1 ;DW 0 ; DM SCR_ADR 2 <DEFW 0 > |
114 | SETVAR SCR_ADR, WORD ;EQU CUR_VAL+1 ;DW 0 ; DM SCR_ADR 2 <DEFW 0 > |
114 | COLOR_M EQU SCR_ADR+2 ;DB 7 ; DM COLOR_M 1 <DEFB 7 > |
115 | SETVAR COLOR_M, BYTE ;EQU SCR_ADR+2 ;DB 7 ; DM COLOR_M 1 <DEFB 7 > |
115 | SAV_CUR EQU COLOR_M+1 ;DB 0 ; DM SAV_CUR 1 <DEFB 0 > |
116 | SETVAR SAV_CUR, BYTE ;EQU COLOR_M+1 ;DB 0 ; DM SAV_CUR 1 <DEFB 0 > |
116 | 117 | ||
117 | MEMDSP EQU SAV_CUR+1 ;DB 0X11 ; DM MEMDSP 1 <DEFB 11H > |
118 | SETVAR MEMDSP, BYTE ;EQU SAV_CUR+1 ;DB 0X11 ; DM MEMDSP 1 <DEFB 11H > |
118 | C_CNT EQU MEMDSP+1 ;DB 1 ; DM C_CNT 1 <DEFB 1 > |
119 | SETVAR C_CNT, BYTE ;EQU MEMDSP+1 ;DB 1 ; DM C_CNT 1 <DEFB 1 > |
119 | C_MAX EQU C_CNT+1 ;DB 10 ; DM C_MAX 1 <DEFB 10 > |
120 | SETVAR C_MAX, BYTE ;EQU C_CNT+1 ;DB 10 ; DM C_MAX 1 <DEFB 10 > |
120 | C_BEG EQU C_MAX+1 ;DB 7 ; DM C_BEG 1 <DEFB 7 > |
121 | SETVAR C_BEG, BYTE ;EQU C_MAX+1 ;DB 7 ; DM C_BEG 1 <DEFB 7 > |
121 | C_END EQU C_BEG+1 ;DB 8 ; DM C_END 1 <DEFB 8 > |
122 | SETVAR C_END, BYTE ;EQU C_BEG+1 ;DB 8 ; DM C_END 1 <DEFB 8 > |
122 | TMP_W EQU C_END+1 ;DW 0 ; DM TMP_W 2 <DEFS 2 > |
123 | SETVAR TMP_W, WORD ;EQU C_END+1 ;DW 0 ; DM TMP_W 2 <DEFS 2 > |
123 | C_ACT EQU TMP_W+2 ;DB 1 ; DM C_ACT 1 <DEFB 1 > |
124 | SETVAR C_ACT, BYTE ;EQU TMP_W+2 ;DB 1 ; DM C_ACT 1 <DEFB 1 > |
124 | BEEP_D EQU C_ACT+1 ;DW 0X3F10 ; DM BEEP_D 2 <DEFW 3F10H > |
125 | SETVAR BEEP_D, WORD ;EQU C_ACT+1 ;DW 0X3F10 ; DM BEEP_D 2 <DEFW 3F10H > |
125 | FE_IMG EQU BEEP_D+2 ;DB 0XBE ; DM FE_IMG 1 <DEFB 0BEH > |
126 | SETVAR FE_IMG, BYTE ;EQU BEEP_D+2 ;DB 0XBE ; DM FE_IMG 1 <DEFB 0BEH > |
126 | BORDER EQU FE_IMG+1 ;DB 0 ; DM BORDER 1 <DEFB 0 > |
127 | SETVAR BORDER, BYTE ;EQU FE_IMG+1 ;DB 0 ; DM BORDER 1 <DEFB 0 > |
127 | SYS_P EQU BORDER+1 ;DB 0 ; DM SYS_P 1 <DEFB 0 > |
128 | SETVAR SYS_P, BYTE ;EQU BORDER+1 ;DB 0 ; DM SYS_P 1 <DEFB 0 > |
128 | FUNC EQU SYS_P+1 ;DB 0 ; DM FUNC 1 <DEFS 1 > |
129 | SETVAR FUNC, BYTE ;EQU SYS_P+1 ;DB 0 ; DM FUNC 1 <DEFS 1 > |
129 | FCNT EQU FUNC+1 ;DB 0 ; DM FCNT 1 <DEFS 1 > |
130 | SETVAR FCNT, BYTE ;EQU FUNC+1 ;DB 0 ; DM FCNT 1 <DEFS 1 > |
130 | PAR_PT EQU FCNT+1 ;DW 0 ; DM PAR_PT 2 <DEFS 2 > |
131 | SETVAR PAR_PT, WORD ;EQU FCNT+1 ;DW 0 ; DM PAR_PT 2 <DEFS 2 > |
131 | BCOL EQU PAR_PT+2 ;DB 0 ; DM BCOL 1 <DEFB 0 > |
132 | SETVAR BCOL, BYTE ;EQU PAR_PT+2 ;DB 0 ; DM BCOL 1 <DEFB 0 > |
132 | TIME_C EQU BCOL+1 ;DUPL 4,0 ; DM TIME_C 4 <DEFB 0,0,0,0 > |
133 | SETVAR TIME_C, DWORD ;EQU BCOL+1 ;DUPL 4,0 ; DM TIME_C 4 <DEFB 0,0,0,0 > |
133 | ; FOR KEYBOARD |
134 | ; FOR KEYBOARD |
134 | K_5CNT EQU TIME_C+4 ;DB 0 ; DM K_5CNT 1 <DB 0 > |
135 | SETVAR K_5CNT, BYTE ;EQU TIME_C+4 ;DB 0 ; DM K_5CNT 1 <DB 0 > |
135 | K_LAST EQU K_5CNT+1 ;DB 0 ; DM K_LAST 1 <DB 0 > |
136 | SETVAR K_LAST, BYTE ;EQU K_5CNT+1 ;DB 0 ; DM K_LAST 1 <DB 0 > |
136 | K_CNT EQU K_LAST+1 ;DB 0 ; DM K_CNT 1 <DB 0 > |
137 | SETVAR K_CNT, BYTE ;EQU K_LAST+1 ;DB 0 ; DM K_CNT 1 <DB 0 > |
137 | K_BUF EQU K_CNT+1 ;DB -1 ; DM K_BUF 1 <DB -1 > |
138 | SETVAR K_BUF, BYTE ;EQU K_CNT+1 ;DB -1 ; DM K_BUF 1 <DB -1 > |
138 | KEY_DEL EQU K_BUF+1 ;DB 15 ; DM KEY_DEL 1 <DB 15 > |
139 | SETVAR KEY_DEL, BYTE ;EQU K_BUF+1 ;DB 15 ; DM KEY_DEL 1 <DB 15 > |
139 | KEY_REP EQU KEY_DEL+1 ;DB 5 ; DM KEY_REP 1 <DB 5 > |
140 | SETVAR KEY_REP, BYTE ;EQU KEY_DEL+1 ;DB 5 ; DM KEY_REP 1 <DB 5 > |
140 | TAIL EQU KEY_REP+1 ;DB 0 ; DM TAIL 1 <DEFB 0 > |
141 | SETVAR TAIL, BYTE ;EQU KEY_REP+1 ;DB 0 ; DM TAIL 1 <DEFB 0 > |
141 | BEEP_T EQU TAIL+1 ;DW 0X6008 ; DM BEEP_T 2 <DEFW 6008H > |
142 | SETVAR BEEP_T, WORD ;EQU TAIL+1 ;DW 0X6008 ; DM BEEP_T 2 <DEFW 6008H > |
142 | BEEP_K EQU BEEP_T+2 ;DW 0X3F04 ; DM BEEP_K 2 <DEFW 3F04H > |
143 | SETVAR BEEP_K, WORD ;EQU BEEP_T+2 ;DW 0X3F04 ; DM BEEP_K 2 <DEFW 3F04H > |
143 | ; KB SWITCH |
144 | ; KB SWITCH |
144 | KEYBOARD EQU BEEP_K+2 ;DB 0XC9,0,0 ; DM KEYBOARD 3 <DB 0C9H,0,0 > |
145 | SETVAR KEYBOARD, 3 ;EQU BEEP_K+2 ;DB 0XC9,0,0 ; DM KEYBOARD 3 <DB 0C9H,0,0 > |
145 | READ_K EQU KEYBOARD+3 ;DUPL 3,0 ; DM READ_K 3 |
146 | SETVAR READ_K, 3 ;EQU KEYBOARD+3 ;DUPL 3,0 ; DM READ_K 3 |
146 | STAT_K EQU READ_K+3 ;DUPL 3,0 ; DM STAT_K 3 |
147 | SETVAR STAT_K, 3 ;EQU READ_K+3 ;DUPL 3,0 ; DM STAT_K 3 |
147 | READA_KNW EQU STAT_K+3 ;DUPL 3,0 ; DM READA_KNW 3 |
148 | SETVAR READA_KNW, 3 ;EQU STAT_K+3 ;DUPL 3,0 ; DM READA_KNW 3 |
148 | KB_TYP EQU READA_KNW+3 ;DUPL 3,0 ; DM KB_TYP 3 |
149 | SETVAR KB_TYP, 3 ;EQU READA_KNW+3 ;DUPL 3,0 ; DM KB_TYP 3 |
149 | K_INIT EQU KB_TYP+3 ;DUPL 3,0 ; DM K_INIT 3 |
150 | SETVAR K_INIT, 3 ;EQU KB_TYP+3 ;DUPL 3,0 ; DM K_INIT 3 |
150 | 151 | ||
151 | KS_ASH EQU K_INIT+3 ;DB 0 ; DM KS_ASH 1 |
152 | SETVAR KS_ASH, BYTE ;EQU K_INIT+3 ;DB 0 ; DM KS_ASH 1 |
152 | KS_SHIFTS EQU KS_ASH+1 ;DB 0 ; DM KS_SHIFTS 1 |
153 | SETVAR KS_SHIFTS, BYTE ;EQU KS_ASH+1 ;DB 0 ; DM KS_SHIFTS 1 |
153 | KS_UND EQU KS_SHIFTS+1 ;DW 0 ; DM KS_UND 2 |
154 | SETVAR KS_UND, WORD ;EQU KS_SHIFTS+1 ;DW 0 ; DM KS_UND 2 |
154 | KS_UNDS EQU KS_UND+2 ;DB 0 ; DM KS_UNDS 1 |
155 | SETVAR KS_UNDS, BYTE ;EQU KS_UND+2 ;DB 0 ; DM KS_UNDS 1 |
155 | KS_UNDS1 EQU KS_UNDS+1 ;DB 0 ; DM KS_UNDS1 1 |
156 | SETVAR KS_UNDS1, BYTE ;EQU KS_UNDS+1 ;DB 0 ; DM KS_UNDS1 1 |
156 | I_MAX EQU KS_UNDS1+1 ;DB 0 ; DM I_MAX 1 |
157 | SETVAR I_MAX, BYTE ;EQU KS_UNDS1+1 ;DB 0 ; DM I_MAX 1 |
157 | I_MIN EQU I_MAX+1 ;DB 0 ; DM I_MIN 1 |
158 | SETVAR I_MIN, BYTE ;EQU I_MAX+1 ;DB 0 ; DM I_MIN 1 |
158 | I_AVR EQU I_MIN+1 ;DB 0 ; DM I_AVR 1 |
159 | SETVAR I_AVR, BYTE ;EQU I_MIN+1 ;DB 0 ; DM I_AVR 1 |
159 | ; EDISK WORK VALUE |
160 | ; EDISK WORK VALUE |
160 | ED_CYL EQU I_AVR+1 ;DB 0 ; DM ED_CYL 1 |
161 | SETVAR ED_CYL, BYTE ;EQU I_AVR+1 ;DB 0 ; DM ED_CYL 1 |
161 | ; FDISK WORK VALUE |
162 | ; FDISK WORK VALUE |
162 | SV_SP EQU ED_CYL+1 ;DW 0 ; DM SV_SP 2 |
163 | SETVAR SV_SP, WORD ;EQU ED_CYL+1 ;DW 0 ; DM SV_SP 2 |
163 | ; PROTECT VALUE |
164 | ; PROTECT VALUE |
164 | RTIME EQU SV_SP+2 ;DW 0 ; DM RTIME 2 |
165 | SETVAR RTIME, WORD ;EQU SV_SP+2 ;DW 0 ; DM RTIME 2 |
165 | ; INTERPAGE LDIR'S PARAMETERS |
166 | ; INTERPAGE LDIR'S PARAMETERS |
166 | R8_FR EQU RTIME;+2 ;DB 0 ; DM R8_FR 1 |
167 | R8_FR EQU RTIME;+2 ;DB 0 ; DM R8_FR 1 |
167 | R8_TO EQU RTIME+1;2 ;DB 0 ; DM R8_TO 1 |
168 | R8_TO EQU RTIME+1;2 ;DB 0 ; DM R8_TO 1 |
168 | ; ESC SEQUENCE PARAMS |
169 | ; ESC SEQUENCE PARAMS |
169 | PAR1 EQU RTIME+2 ;DB 0 ; DM PAR1 1 |
170 | SETVAR PAR1, BYTE ;EQU RTIME+2 ;DB 0 ; DM PAR1 1 |
170 | PAR2 EQU PAR1+1 ;DB 0 ; DM PAR2 1 |
171 | SETVAR PAR2, BYTE ;EQU PAR1+1 ;DB 0 ; DM PAR2 1 |
171 | PAR3 EQU PAR2+1 ;DB 0 ; DM PAR3 1 |
172 | SETVAR PAR3, BYTE ;EQU PAR2+1 ;DB 0 ; DM PAR3 1 |
172 | PAR4 EQU PAR3+1 ;DB 0 ; DM PAR4 1 |
173 | SETVAR PAR4, BYTE ;EQU PAR3+1 ;DB 0 ; DM PAR4 1 |
173 | PARR EQU PAR4+1 ;DUPL 13,0 ; DM PARR 13 |
174 | SETVAR PARR, 13 ;EQU PAR4+1 ;DUPL 13,0 ; DM PARR 13 |
174 | BUF EQU PAR1 |
175 | BUF EQU PAR1 |
175 | ; POWER ON DETECTOR |
176 | ; POWER ON DETECTOR |
176 | TST_1RUN EQU PARR+13 ;DW 0 ; DM TST_1RUN 2 |
177 | SETVAR TST_1RUN, WORD ;EQU PARR+13 ;DW 0 ; DM TST_1RUN 2 |
177 | TST_IS1 EQU TST_1RUN+2 ;DB 0 ; DM TST_IS1 1 |
178 | SETVAR TST_IS1, BYTE ;EQU TST_1RUN+2 ;DB 0 ; DM TST_IS1 1 |
- | 179 | ||
- | 180 | ; IN VALUE |
|
- | 181 | SETVAR RQCHAN, BYTE ;EQU TST_IS1+1 ;DB 0 ; DM RQCHAN 1 ;НОМЕР КАНАЛА |
|
- | 182 | SETVAR RQCOM, BYTE ;EQU RQCHAN+1 ;DB 0 ; DM RQCOM 1 ;КОМАНДА |
|
- | 183 | SETVAR RQBLN, BYTE ;EQU RQCOM+1 ;DB 0 ; DM RQBLN 1 ;ЧИСЛО БЛОКОВ |
|
- | 184 | SETVAR RQTRACK, WORD ;EQU RQBLN+1 ;DW 0 ; DM RQTRACK 2 ;НОМЕР ДОРОЖКИ |
|
- | 185 | SETVAR RQBLOCK, WORD ;EQU RQTRACK+2 ;DW 0X4F00 ; DM RQBLOCK 2 ;НОМЕР БЛОКА |
|
- | 186 | SETVAR RQBADR, WORD ;EQU RQBLOCK+2 ;DW 0X18 ; DM RQBADR 2 ;БУФЕР ПОЛЬЗОВАТЕЛЯ |
|
- | 187 | ||
- | 188 | ; WORK VALUE |
|
- | 189 | SETVAR RQHEAD, BYTE ;EQU RQBADR+2 ;DB 7 ; DM RQHEAD 1 ;НОМЕР ГОЛОВКИ |
|
- | 190 | SETVAR RQCYL, WORD ;EQU RQHEAD+1 ;DW 0 ; DM RQCYL 2 ;НОМЕР ЦИЛИНДРА |
|
- | 191 | SETVAR LOCBUF, WORD ;EQU RQCYL+2 ;DW 0 ; DM LOCBUF 2 ;АДРЕС БЛОКА В БУФЕРЕ |
|
- | 192 | SETVAR RQSECT, BYTE ;EQU LOCBUF+2 ;DB 7 ; DM RQSECT 1 ;НОМЕР СЕКТОРА |
|
- | 193 | SETVAR DCBUF, WORD ;EQU RQSECT+1 ;DW 0X300 ; DM DCBUF 2 ;АДРЕС БУФЕРА |
|
- | 194 | SETVAR REP, BYTE ;EQU DCBUF+2 ;DB 1 ; DM REP 1 ;СЧЕТЧИК ЧИСЛА ПОВТОРОВ |
|
- | 195 | ||
- | 196 | ;ПЕРЕМЕННЫЕ КОНТРОЛЕРА ФЛОПОВ |
|
- | 197 | SETVAR FD_TRKS, WORD ;EQU REP+1 ;DB 0X0A,7;,8,0 ; DM FD_TRKS 4 ;НОМЕРА ТЕКУЩИХ ДОРОЖЕК |
|
- | 198 | ||
- | 199 | ;БЛОК СОСТОЯНИЯ БУФЕРА |
|
- | 200 | SETVAR BUFT, BYTE ;EQU FD_TRKS+2 ;DB 0 ; DM BUFT 1 ;НОМЕР КАНАЛА |
|
- | 201 | SETVAR BUFTRK, WORD ;EQU BUFT+1 ;DW 0X1001 ; DM BUFTRK 2 ;НОМЕР ДОРОЖКИ |
|
- | 202 | SETVAR BUFSEC, BYTE ;EQU BUFTRK+2 ;DB 0X3F ; DM BUFSEC 1 ;НОМЕР СЕКТОРА |
|
- | 203 | ||
- | 204 | ;----------------------- |
|
- | 205 | INIT_VAR |
|
- | 206 | SETVAR DVALID, BYTE ;EQU 0 ;: DS 1 ;+ ПРИЗНАК ДЕЙСТВИТЕЛЬНОСТИ |
|
- | 207 | SETVAR _DTYP, BYTE ;EQU DVALID+1 ;: DS 1 ;+ КОД УСТРОЙСТВА |
|
- | 208 | SETVAR _DUS, BYTE ;EQU _DTYP+1 ;: DS 1 ;+ НОМЕР ПРИВОДА |
|
- | 209 | SETVAR _DDTYP, BYTE ;EQU _DUS+1 ;: DS 1 ;- КОД ПРИВОДА (Hi bit - unbuferized) |
|
- | 210 | SETVAR _DHEADF, BYTE ;EQU _DDTYP+1 ;: DS 1 ;+ ЧИСЛО ФИКСИРОВАННЫХ ГОЛОВОК |
|
- | 211 | SETVAR _DHEADR, BYTE ;EQU _DHEADF+1 ;: DS 1 ;+ ЧИСЛО СМЕННЫХ ГОЛОВОК |
|
- | 212 | SETVAR _DCYLN, WORD ;EQU _DHEADR+1 ;: DS 2 ;+ ЧИСЛО ЦИЛИНДРОВ НА ДИСКЕ |
|
- | 213 | SETVAR _DSECTT, BYTE ;EQU _DCYLN+2 ;: DS 1 ;+ ЧИСЛО СЕКТОРОВ НА ДОРОЖКЕ |
|
- | 214 | SETVAR _DBYTES, WORD ;EQU _DSECTT+1 ;: DS 2 ;+ ЧИСЛО БАЙТОВ В СЕКТОРЕ |
|
- | 215 | SETVAR _DALTCYL, BYTE ;EQU _DBYTES+2 ;: DS 1 ;+ ЧИСЛО СИСТЕМНЫХ ДОРОЖЕК |
|
- | 216 | SETVAR _DBEGCYL, WORD ;EQU _DALTCYL+1 ;: DS 2 ;+ НОМЕР НАЧАЛЬНОГО ЦИЛИНДРА |
|
- | 217 | SETVAR _DBLDR, WORD ;EQU _DBEGCYL+2 ;: DS 2 ;+ ЧИСЛО БЛОКОВ НА ДИСКЕ |
|
- | 218 | SETVAR _DBLTR, WORD ;EQU _DBLDR+2 ;: DS 2 ;+ ЧИСЛО БЛОКОВ НА ДОРОЖКЕ |
|
- | 219 | SETVAR _DTRACK, WORD ;EQU _DBLTR+2 ;: DS 2 ;+ ЧИСЛО ДОРОЖЕК НА ДИСКЕ |
|
- | 220 | SETVAR _DSEKTL, BYTE ;EQU _DTRACK+2 ;: DS 1 ;+ ДЛИНА НОМЕРА БЛОКА В СЕКТОРЕ |
|
- | 221 | SETVAR _DDIRENT, WORD ;EQU _DSEKTL+1 ;: DS 2 ;+ ЧИСЛО ЗАПИСЕЙ В ДИРЕКТОРИИ |
|
- | 222 | SETVAR _DIF0, BYTE ;EQU _DDIRENT+2 ;: DS 1 ;+ РАЗМЕТКА ПЕРВОЙ ДОРОЖКИ |
|
- | 223 | SETVAR _DIF1, BYTE ;EQU _DIF0+1 ;: DS 1 ;+ РАЗМЕТКА ВТОРОЙ ДОРОЖКИ |
|
- | 224 | SETVAR _DIF2, BYTE ;EQU _DIF1+1 ;: DS 1 ;+ РАЗМЕТКА ВСЕХ ОСТАВШИХСЯ ДОРОЖЕК |
|
- | 225 | SETVAR _DTIF, BYTE ;EQU _DIF2+1 ;: DS 1 ;? СМЕЩЕНИЕ ПЕРВОГО СЕКТОРА |
|
- | 226 | SETVAR _DF8, BYTE ;EQU _DTIF+1 ; DS 1 ;+ ПРИЗНАК 8-ДЮЙМОВОГО ДИСКА |
|
- | 227 | ; ИЛИ НОМЕР НАЧАЛЬНОЙ ГОЛОВКИ |
|
- | 228 | SETVAR _DFMFM, BYTE ;EQU _DF8+1 ;: DS 1 ;+ ПЛОТНОСТЬ ЗАПИСИ |
|
- | 229 | SETVAR _DFN, BYTE ;EQU _DFMFM+1 ;: DS 1 ;+ РАЗМЕР СЕКТОРА |
|
- | 230 | SETVAR _DFGPL, BYTE ;EQU _DFN+1 ;: DS 1 ;+ GAP3 ДЛЯ ЧТЕНИЯ/ЗАПИСИ |
|
- | 231 | SETVAR _DFGPF, BYTE ;EQU _DFGPL+1 ;: DS 1 ;+ GAP3 ДЛЯ ФОРМАТА |
|
- | 232 | SETVAR _DFSRHUT, BYTE ;EQU _DFGPF+1 ;: DS 1 ;+ ВРЕМЯ ШАГА |
|
- | 233 | ; ИЛИ ВРЕМЯ ШАГА ПРИ SEEK |
|
- | 234 | SETVAR _DFHLT, BYTE ;EQU _DFSRHUT+1 ; DS 1: ;+ ВРЕМЯ ОПУСКАНИЯ ГОЛОВКИ |
|
- | 235 | ; ИЛИ ВРЕМЯ ШАГА ПРИ RECALIBRATE |
|
- | 236 | SETVAR _DFMOTOR, BYTE ;EQU _DFHLT+1 ;: DS 1 ;+ ПРИЗНАК ВКЛЮЧЕНИЯ МОТОРА |
|
178 | 237 | ||
179 | ;СМЕЩЕНИЯ ОТ IX |
238 | ;СМЕЩЕНИЯ ОТ IX |
180 | _FLAG EQU LOW (IX_BASE-FLAG) |
239 | _FLAG EQU LOW (IX_BASE - FLAG) |
181 | _FLAG1 EQU LOW (IX_BASE-FLAG1) |
240 | _FLAG1 EQU LOW (IX_BASE - FLAG1) |
182 | _W_X1 EQU LOW (IX_BASE-W_X1) |
241 | _W_X1 EQU LOW (IX_BASE - W_X1) |
Line 224... | Line 283... | ||
224 | _REP EQU LOW (IX_BASE-REP) |
283 | _REP EQU LOW (IX_BASE - REP) |
225 | _BUFT EQU LOW (IX_BASE-BUFT) |
284 | _BUFT EQU LOW (IX_BASE - BUFT) |
226 | _BUFSEC EQU LOW (IX_BASE-BUFSEC) |
285 | _BUFSEC EQU LOW (IX_BASE - BUFSEC) |
227 | 286 | ||
228 | ; REST OF SWITCH AREA |
287 | ; REST OF SWITCH AREA |
- | 288 | INIT_VAR 0xDF40 |
|
229 | CL_SW EQU 0XDF40 |
289 | SETVAR CL_SW, 3 ;EQU 0XDF40 |
230 | SW_DO EQU CL_SW+3 |
290 | SETVAR SW_DO, 0 ;EQU CL_SW+3 |
231 | OUT_SW EQU CL_SW+3 |
291 | SETVAR OUT_SW, 0 ;EQU CL_SW+3 |
232 | SW_CLR EQU OUT_SW |
292 | SETVAR SW_CLR, 0 ;EQU OUT_SW |
233 | 293 | ||
234 | ; SOME DATA AREAS |
294 | ; SOME DATA AREAS |
235 | SV_ARE EQU SW_CLR |
295 | SETVAR SV_ARE, WORD ;EQU SW_CLR |
236 | ARR_CO EQU SV_ARE+2 |
296 | SETVAR ARR_CO, 16 + 3 ;EQU SV_ARE+2 |
237 | SG_ENC EQU ARR_CO+16+3 |
297 | SETVAR SG_ENC, DWORD ;EQU ARR_CO+16+3 |
238 | ENC_SI EQU SG_ENC+4 |
298 | SETVAR ENC_SI, DWORD ;EQU SG_ENC+4 |
239 | ENC_SO EQU ENC_SI+4 |
299 | SETVAR ENC_SO, DWORD ;EQU ENC_SI+4 |
240 | PAL_BUF EQU ENC_SO+4 |
300 | SETVAR PAL_BUF, 0 ;EQU ENC_SO+4 |
241 | 301 | ||
242 | ; FILLED SWITCH AREA |
302 | ; FILLED SWITCH AREA |
243 | SW_C EQU CL_SW |
303 | INIT_VAR CL_SW |
244 | SW_PUT EQU CL_SW |
304 | SETVAR SW_C, 0 ;EQU CL_SW |
245 | SW_CLL EQU CL_SW |
305 | SETVAR SW_PUT, 0 ;EQU CL_SW |
246 | SW_SCO EQU CL_SW |
306 | SETVAR SW_CLL, 0 ;EQU CL_SW |
247 | SW_RRL EQU CL_SW |
307 | SETVAR SW_SCO, 0 ;EQU CL_SW |
248 | SW_SIZ EQU CL_SW |
308 | SETVAR SW_RRL, 0 ;EQU CL_SW |
249 | - | ||
250 | ; IN VALUE |
- | |
251 | RQCHAN EQU TST_IS1+1 ;DB 0 ; DM RQCHAN 1 ;НОМЕР КАНАЛА |
- | |
252 | RQCOM EQU RQCHAN+1 ;DB 0 ; DM RQCOM 1 ;КОМАНДА |
- | |
253 | RQBLN EQU RQCOM+1 ;DB 0 ; DM RQBLN 1 ;ЧИСЛО БЛОКОВ |
- | |
254 | RQTRACK EQU RQBLN+1 ;DW 0 ; DM RQTRACK 2 ;НОМЕР ДОРОЖКИ |
- | |
255 | RQBLOCK EQU RQTRACK+2 ;DW 0X4F00 ; DM RQBLOCK 2 ;НОМЕР БЛОКА |
- | |
256 | RQBADR EQU RQBLOCK+2 ;DW 0X18 ; DM RQBADR 2 ;БУФЕР ПОЛЬЗОВАТЕЛЯ |
- | |
257 | - | ||
258 | ; WORK VALUE |
309 | SETVAR SW_SIZ, 0 ;EQU CL_SW |
259 | RQHEAD EQU RQBADR+2 ;DB 7 ; DM RQHEAD 1 ;НОМЕР ГОЛОВКИ |
- | |
260 | RQCYL EQU RQHEAD+1 ;DW 0 ; DM RQCYL 2 ;НОМЕР ЦИЛИНДРА |
- | |
261 | LOCBUF EQU RQCYL+2 ;DW 0 ; DM LOCBUF 2 ;АДРЕС БЛОКА В БУФЕРЕ |
- | |
262 | RQSECT EQU LOCBUF+2 ;DB 7 ; DM RQSECT 1 ;НОМЕР СЕКТОРА |
- | |
263 | DCBUF EQU RQSECT+1 ;DW 0X300 ; DM DCBUF 2 ;АДРЕС БУФЕРА |
- | |
264 | REP EQU DCBUF+2 ;DB 1 ; DM REP 1 ;СЧЕТЧИК ЧИСЛА ПОВТОРОВ |
- | |
265 | - | ||
266 | ;ПЕРЕМЕННЫЕ КОНТРОЛЕРА ФЛОПОВ |
- | |
267 | FD_TRKS EQU REP+1 ;DB 0X0A,7;,8,0 ; DM FD_TRKS 4 ;НОМЕРА ТЕКУЩИХ ДОРОЖЕК |
- | |
268 | 310 | ||
269 | ;БЛОК СОСТОЯНИЯ БУФЕРА |
- | |
270 | BUFT EQU FD_TRKS+2 ;DB 0 ; DM BUFT 1 ;НОМЕР КАНАЛА |
- | |
271 | BUFTRK EQU BUFT+1 ;DW 0X1001 ; DM BUFTRK 2 ;НОМЕР ДОРОЖКИ |
- | |
272 | BUFSEC EQU BUFTRK+2 ;DB 0X3F ; DM BUFSEC 1 ;НОМЕР СЕКТОРА |
- | |
273 | - | ||
274 | ;----------------------- |
- | |
275 | DVALID EQU 0 ;: DS 1 ;+ ПРИЗНАК ДЕЙСТВИТЕЛЬНОСТИ |
- | |
276 | _DTYP EQU DVALID+1 ;: DS 1 ;+ КОД УСТРОЙСТВА |
- | |
277 | _DUS EQU _DTYP+1 ;: DS 1 ;+ НОМЕР ПРИВОДА |
- | |
278 | _DDTYP EQU _DUS+1 ;: DS 1 ;- КОД ПРИВОДА (Hi bit - unbuferized) |
- | |
279 | _DHEADF EQU _DDTYP+1 ;: DS 1 ;+ ЧИСЛО ФИКСИРОВАННЫХ ГОЛОВОК |
- | |
280 | _DHEADR EQU _DHEADF+1 ;: DS 1 ;+ ЧИСЛО СМЕННЫХ ГОЛОВОК |
- | |
281 | _DCYLN EQU _DHEADR+1 ;: DS 2 ;+ ЧИСЛО ЦИЛИНДРОВ НА ДИСКЕ |
- | |
282 | _DSECTT EQU _DCYLN+2 ;: DS 1 ;+ ЧИСЛО СЕКТОРОВ НА ДОРОЖКЕ |
- | |
283 | _DBYTES EQU _DSECTT+1 ;: DS 2 ;+ ЧИСЛО БАЙТОВ В СЕКТОРЕ |
- | |
284 | _DALTCYL EQU _DBYTES+2 ;: DS 1 ;+ ЧИСЛО СИСТЕМНЫХ ДОРОЖЕК |
- | |
285 | _DBEGCYL EQU _DALTCYL+1 ;: DS 2 ;+ НОМЕР НАЧАЛЬНОГО ЦИЛИНДРА |
- | |
286 | _DBLDR EQU _DBEGCYL+2 ;: DS 2 ;+ ЧИСЛО БЛОКОВ НА ДИСКЕ |
- | |
287 | _DBLTR EQU _DBLDR+2 ;: DS 2 ;+ ЧИСЛО БЛОКОВ НА ДОРОЖКЕ |
- | |
288 | _DTRACK EQU _DBLTR+2 ;: DS 2 ;+ ЧИСЛО ДОРОЖЕК НА ДИСКЕ |
- | |
289 | _DSEKTL EQU _DTRACK+2 ;: DS 1 ;+ ДЛИНА НОМЕРА БЛОКА В СЕКТОРЕ |
- | |
290 | _DDIRENT EQU _DSEKTL+1 ;: DS 2 ;+ ЧИСЛО ЗАПИСЕЙ В ДИРЕКТОРИИ |
- | |
291 | _DIF0 EQU _DDIRENT+2 ;: DS 1 ;+ РАЗМЕТКА ПЕРВОЙ ДОРОЖКИ |
- | |
292 | _DIF1 EQU _DIF0+1 ;: DS 1 ;+ РАЗМЕТКА ВТОРОЙ ДОРОЖКИ |
- | |
293 | _DIF2 EQU _DIF1+1 ;: DS 1 ;+ РАЗМЕТКА ВСЕХ ОСТАВШИХСЯ ДОРОЖЕК |
- | |
294 | _DTIF EQU _DIF2+1 ;: DS 1 ;? СМЕЩЕНИЕ ПЕРВОГО СЕКТОРА |
- | |
295 | _DF8 EQU _DTIF+1 ; DS 1 ;+ ПРИЗНАК 8-ДЮЙМОВОГО ДИСКА |
- | |
296 | ; ИЛИ НОМЕР НАЧАЛЬНОЙ ГОЛОВКИ |
- | |
297 | _DFMFM EQU _DF8+1 ;: DS 1 ;+ ПЛОТНОСТЬ ЗАПИСИ |
- | |
298 | _DFN EQU _DFMFM+1 ;: DS 1 ;+ РАЗМЕР СЕКТОРА |
- | |
299 | _DFGPL EQU _DFN+1 ;: DS 1 ;+ GAP3 ДЛЯ ЧТЕНИЯ/ЗАПИСИ |
- | |
300 | _DFGPF EQU _DFGPL+1 ;: DS 1 ;+ GAP3 ДЛЯ ФОРМАТА |
- | |
301 | _DFSRHUT EQU _DFGPF+1 ;: DS 1 ;+ ВРЕМЯ ШАГА |
- | |
302 | ; ИЛИ ВРЕМЯ ШАГА ПРИ SEEK |
- | |
303 | _DFHLT EQU _DFSRHUT+1 ; DS 1: ;+ ВРЕМЯ ОПУСКАНИЯ ГОЛОВКИ |
- | |
304 | ; ИЛИ ВРЕМЯ ШАГА ПРИ RECALIBRATE |
- | |
305 | _DFMOTOR EQU _DFHLT+1 ;: DS 1 ;+ ПРИЗНАК ВКЛЮЧЕНИЯ МОТОРА |
- | |
306 | ;----------------------- |
311 | ;----------------------- |