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 | ;----------------------- |