Subversion Repositories pentevo

Rev

Rev 964 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

  1.  
  2. ; LAST UPDATE: 18.10.2023 savelij
  3.  
  4. RCALL           MACRO ADDR
  5.                 LD SP,RADDR
  6.                 JP ADDR
  7. ;       IF MOMPASS > 1
  8. RADDR           DW $+2
  9. ;       ELSE
  10. ;RADDR := $+2
  11. ;       ENDIF
  12.                 ENDM
  13.  
  14. ENT_DEF         MACRO V1,V2,V3,V4
  15.                 DB V1 + V2 * 4 + V3 * 16 + V4 * 64
  16.                 ENDM
  17.  
  18.  BITMASK KS_RUS,        7
  19.  BITMASK KS_SCROLL,     6
  20.  BITMASK KS_NUM,        5
  21.  BITMASK KS_CAPS,       4
  22.  BITMASK KS_SHFT2,      3
  23.  BITMASK KS_ALT,        2
  24.  BITMASK KS_CTRL,       1
  25.  BITMASK KS_SHFT,       0
  26.  
  27. ED_PROC         EQU 0
  28. ED_CHAR         EQU 1
  29. ED_SCAN         EQU 2
  30.  
  31. ED_INI          EQU 0
  32. _RU5            EQU 0
  33. _INTOF          EQU 5
  34.  
  35. BIOS            EQU 0EA00H
  36. CCP             EQU BIOS-1600H
  37.  
  38. _RESET          EQU 0
  39. _SEEK           EQU 1
  40. _FORMAT         EQU 2
  41. _RECAL          EQU 3
  42. _READ           EQU 4
  43. _WSECT          EQU 5
  44. _WRITE          EQU 6
  45. _SETCH          EQU 7
  46. _GETCH          EQU 8
  47.  
  48. ;------------------------------
  49. ; ERRORS CODES FOR C_STAT
  50. ;
  51. CS_UNKNO        EQU   0FFH    ; UNKNOWN FUNCTION
  52. CS_ERSEC        EQU   80H     ; WRONG SEQUENCE
  53. CS_UNPRN        EQU   81H     ; UNPRINTABLE CHAR IN SEQUENCE
  54. CS_NODRV        EQU   82H     ; DRIVER NOT INSTALLED
  55. CS_ERPAR        EQU   83H     ; WRONG PARAMETERS
  56. CS_NOMOD        EQU   84H     ; SCREEN MODE DOES NOT EXIST
  57. ; TEXT MODE ERRORS
  58. CST_OVER        EQU   1       ; CAN'T WRITE OVER
  59.  
  60. ADRD            EQU   7DFDH
  61.  
  62. _TF_CURATR      EQU 0        ; CURSOR IS FLEX ATTRIB
  63.  
  64. ;----------------------------
  65. ; КОДЫ ОШИБОК, ВОЗВРАЩАЕМЫЕ ДИСКОВОЙ СИСТЕМОЙ
  66. ;
  67. _ADRERR         EQU     08H     ;ОШИБКА АДРЕСАЦИИ
  68. _CHNFND         EQU     09H     ;КАНАЛ НЕ ПРИСОЕДИНЕН
  69. _HRDERR         EQU     40H     ;ОШИБКА АППАРАТУРЫ
  70. _INVALID        EQU     41H     ;НЕСООТВЕТСТВИЕ ДРАЙВЕРА АППАРАТУРЕ
  71. _DTYPER         EQU     50H     ;НЕДОПУСТИМЫЙ НОМЕР ДРАЙВЕРА В КАНАЛЕ
  72. _DRNFND         EQU     51H     ;ДРАЙВЕР ОТСУТСТВУЕТ
  73. _COMERR         EQU     52H     ;ЗАПРЕЩЕННАЯ КОМАНДА
  74. _IOERR          EQU     53H     ;ОШИБКА ВВОДА/ВЫВОДА
  75. _WR_PROT        EQU     54H     ;ЗАЩИТА ОТ ЗАПИСИ
  76. _FATAL_ERROR    EQU     56H     ;НЕ ОБРАБОТАННАЯ ФАТАЛЬНАЯ ОШИБКА
  77. _NRDY           EQU     59H     ;НЕТ ГОТОВНОСТИ АППАРАТУРЫ (TIMEOUT)
  78.  
  79. _NO_DATA        EQU     81H     ;СЕКТОР НЕ НАЙДЕН
  80. _NO_ADDR_MARK   EQU     82H     ;АДРЕСНЫЙ МАРКЕР НЕ НАЙДЕН
  81. _OVERRUN        EQU     83H     ;OVERRUN
  82. _CRC_ERR        EQU     84H     ;ОШИБКА В CRC
  83.  
  84. MAXDRVN         EQU     7       ;МАКСИМАЛЬНЫЙ НОМЕР ДРАЙВЕРА
  85.  
  86. IOBYTE          EQU     3
  87.  
  88. SYS_SP          EQU 0X8000
  89.  
  90. ED_BUF          EQU 0X7F40                      ;DS  128
  91. MAXQUI          EQU 10H                         ; KEYBUFFER SIZE
  92. BEGQUI          EQU ED_BUF+0X80                 ;DS  MAXQUI
  93.  
  94. IX_BAS          EQU 0X5F40
  95. IX_SHIFT        EQU 0X7F
  96. IX_BASE         EQU IX_BAS+IX_SHIFT
  97.  
  98. ; VARIABLES IX RELATIVE
  99.  INIT_VAR IX_BAS
  100.  SETVAR FLAG,           BYTE            ;EQU IX_BAS     ;DB 0           ;       DM     FLAG   1      <DEFB 0         >
  101.  SETVAR FLAG1,          BYTE            ;EQU FLAG+1     ;DB 0           ;       DM     FLAG1  1      <DEFB 0         >
  102.  
  103.  SETVAR CUR_X,          BYTE            ;EQU FLAG1+1    ;DB 0           ;       DM     CUR_X  1      <DEFB 0         >
  104.  SETVAR CUR_Y,          BYTE            ;EQU CUR_X+1    ;DB 0           ;       DM     CUR_Y  1      <DEFB 0         >
  105.  SETVAR W_X1,           BYTE            ;EQU CUR_Y+1    ;DB 0           ;       DM     W_X1   1      <DEFB 0         >
  106.  SETVAR W_Y1,           BYTE            ;EQU W_X1+1     ;DB 0           ;       DM     W_Y1   1      <DEFB 0         >
  107.  SETVAR W_X2,           BYTE            ;EQU W_Y1+1     ;DB 50          ;       DM     W_X2   1      <DEFB 50        >
  108.  SETVAR W_Y2,           BYTE            ;EQU W_X2+1     ;DB 24          ;       DM     W_Y2   1      <DEFB 24        >
  109.  SETVAR COLOR_P,        BYTE            ;EQU W_Y2+1     ;DB 0           ;       DM     COLOR_P 1     <DEFB 0         >
  110.  SETVAR COLOR_I,        BYTE            ;EQU COLOR_P+1  ;DB 7           ;       DM     COLOR_I 1     <DEFB 7         >
  111.  SETVAR C_STAT,         BYTE            ;EQU COLOR_I+1  ;DB 0           ;       DM     C_STAT 1      <DEFB 0         >
  112.  SETVAR T_FLAG,         BYTE            ;EQU C_STAT+1   ;DB 0           ;       DM     T_FLAG 1      <DEFB 0         >
  113.  SETVAR CUR_VAL,        BYTE            ;EQU T_FLAG+1   ;DB 0           ;       DM     CUR_VAL 1     <DEFB 0         >
  114.  SETVAR SCR_ADR,        WORD            ;EQU CUR_VAL+1  ;DW 0           ;       DM     SCR_ADR 2     <DEFW 0         >
  115.  SETVAR COLOR_M,        BYTE            ;EQU SCR_ADR+2  ;DB 7           ;       DM     COLOR_M 1     <DEFB 7         >
  116.  SETVAR SAV_CUR,        BYTE            ;EQU COLOR_M+1  ;DB 0           ;       DM     SAV_CUR 1     <DEFB 0         >
  117.  
  118.  SETVAR MEMDSP,         BYTE            ;EQU SAV_CUR+1  ;DB 0X11        ;       DM     MEMDSP 1      <DEFB 11H       >
  119.  SETVAR C_CNT,          BYTE            ;EQU MEMDSP+1   ;DB 1           ;       DM     C_CNT  1      <DEFB 1         >
  120.  SETVAR C_MAX,          BYTE            ;EQU C_CNT+1    ;DB 10          ;       DM     C_MAX  1      <DEFB 10        >
  121.  SETVAR C_BEG,          BYTE            ;EQU C_MAX+1    ;DB 7           ;       DM     C_BEG  1      <DEFB 7         >
  122.  SETVAR C_END,          BYTE            ;EQU C_BEG+1    ;DB 8           ;       DM     C_END  1      <DEFB 8         >
  123.  SETVAR TMP_W,          WORD            ;EQU C_END+1    ;DW 0           ;       DM     TMP_W  2      <DEFS 2         >
  124.  SETVAR C_ACT,          BYTE            ;EQU TMP_W+2    ;DB 1           ;       DM     C_ACT  1      <DEFB 1         >
  125.  SETVAR BEEP_D,         WORD            ;EQU C_ACT+1    ;DW 0X3F10      ;       DM     BEEP_D 2      <DEFW 3F10H     >
  126.  SETVAR FE_IMG,         BYTE            ;EQU BEEP_D+2   ;DB 0XBE        ;       DM     FE_IMG 1      <DEFB 0BEH      >
  127.  SETVAR BORDER,         BYTE            ;EQU FE_IMG+1   ;DB 0           ;       DM     BORDER 1      <DEFB 0         >
  128.  SETVAR SYS_P,          BYTE            ;EQU BORDER+1   ;DB 0           ;       DM     SYS_P  1      <DEFB 0         >
  129.  SETVAR FUNC,           BYTE            ;EQU SYS_P+1    ;DB 0           ;       DM     FUNC   1      <DEFS 1         >
  130.  SETVAR FCNT,           BYTE            ;EQU FUNC+1     ;DB 0           ;       DM     FCNT   1      <DEFS 1         >
  131.  SETVAR PAR_PT,         WORD            ;EQU FCNT+1     ;DW 0           ;       DM     PAR_PT 2      <DEFS 2         >
  132.  SETVAR BCOL,           BYTE            ;EQU PAR_PT+2   ;DB 0           ;       DM     BCOL   1      <DEFB 0         >
  133.  SETVAR TIME_C,         DWORD           ;EQU BCOL+1     ;DUPL 4,0       ;       DM     TIME_C 4      <DEFB 0,0,0,0   >
  134. ;  FOR KEYBOARD
  135.  SETVAR K_5CNT,         BYTE            ;EQU TIME_C+4   ;DB 0           ;       DM     K_5CNT 1      <DB 0           >
  136.  SETVAR K_LAST,         BYTE            ;EQU K_5CNT+1   ;DB 0           ;       DM     K_LAST 1      <DB 0           >
  137.  SETVAR K_CNT,          BYTE            ;EQU K_LAST+1   ;DB 0           ;       DM     K_CNT  1      <DB 0           >
  138.  SETVAR K_BUF,          BYTE            ;EQU K_CNT+1    ;DB -1          ;       DM     K_BUF  1      <DB -1          >
  139.  SETVAR KEY_DEL,        BYTE            ;EQU K_BUF+1    ;DB 15          ;       DM     KEY_DEL 1     <DB 15          >
  140.  SETVAR KEY_REP,        BYTE            ;EQU KEY_DEL+1  ;DB 5           ;       DM     KEY_REP 1     <DB 5           >
  141.  SETVAR TAIL,           BYTE            ;EQU KEY_REP+1  ;DB 0           ;       DM     TAIL   1      <DEFB 0         >
  142.  SETVAR BEEP_T,         WORD            ;EQU TAIL+1     ;DW 0X6008      ;       DM     BEEP_T 2      <DEFW 6008H     >
  143.  SETVAR BEEP_K,         WORD            ;EQU BEEP_T+2   ;DW 0X3F04      ;       DM     BEEP_K 2      <DEFW 3F04H     >
  144. ; KB SWITCH
  145.  SETVAR KEYBOARD,       3               ;EQU BEEP_K+2   ;DB 0XC9,0,0    ;       DM     KEYBOARD  3    <DB 0C9H,0,0    >
  146.  SETVAR READ_K,         3               ;EQU KEYBOARD+3 ;DUPL 3,0       ;       DM     READ_K    3
  147.  SETVAR STAT_K,         3               ;EQU READ_K+3   ;DUPL 3,0       ;       DM     STAT_K    3
  148.  SETVAR READA_KNW,      3               ;EQU STAT_K+3   ;DUPL 3,0       ;       DM     READA_KNW 3
  149.  SETVAR KB_TYP,         3               ;EQU READA_KNW+3        ;DUPL 3,0       ;       DM     KB_TYP    3
  150.  SETVAR K_INIT,         3               ;EQU KB_TYP+3   ;DUPL 3,0       ;       DM     K_INIT    3
  151.  
  152.  SETVAR KS_ASH,         BYTE            ;EQU K_INIT+3   ;DB 0           ;       DM     KS_ASH    1
  153.  SETVAR KS_SHIFTS,      BYTE            ;EQU KS_ASH+1   ;DB 0           ;       DM     KS_SHIFTS 1
  154.  SETVAR KS_UND,         WORD            ;EQU KS_SHIFTS+1        ;DW 0           ;       DM     KS_UND    2
  155.  SETVAR KS_UNDS,        BYTE            ;EQU KS_UND+2   ;DB 0           ;       DM     KS_UNDS   1
  156.  SETVAR KS_UNDS1,       BYTE            ;EQU KS_UNDS+1  ;DB 0           ;       DM     KS_UNDS1  1
  157.  SETVAR I_MAX,          BYTE            ;EQU KS_UNDS1+1 ;DB 0           ;       DM     I_MAX  1
  158.  SETVAR I_MIN,          BYTE            ;EQU I_MAX+1    ;DB 0           ;       DM     I_MIN  1
  159.  SETVAR I_AVR,          BYTE            ;EQU I_MIN+1    ;DB 0           ;       DM     I_AVR  1
  160. ;  EDISK WORK VALUE
  161.  SETVAR ED_CYL,         BYTE            ;EQU I_AVR+1    ;DB 0           ;       DM     ED_CYL 1
  162. ;  FDISK WORK VALUE
  163.  SETVAR SV_SP,          WORD            ;EQU ED_CYL+1   ;DW 0           ;       DM     SV_SP  2
  164. ;  PROTECT VALUE
  165.  SETVAR RTIME,          WORD            ;EQU SV_SP+2    ;DW 0           ;       DM     RTIME  2
  166. ;  INTERPAGE LDIR'S PARAMETERS
  167. R8_FR           EQU RTIME;+2    ;DB 0           ;       DM     R8_FR  1
  168. R8_TO           EQU RTIME+1;2   ;DB 0           ;       DM     R8_TO  1
  169. ;  ESC SEQUENCE PARAMS
  170.  SETVAR PAR1,           BYTE            ;EQU RTIME+2    ;DB 0           ;       DM     PAR1   1
  171.  SETVAR PAR2,           BYTE            ;EQU PAR1+1     ;DB 0           ;       DM     PAR2   1
  172.  SETVAR PAR3,           BYTE            ;EQU PAR2+1     ;DB 0           ;       DM     PAR3   1
  173.  SETVAR PAR4,           BYTE            ;EQU PAR3+1     ;DB 0           ;       DM     PAR4   1
  174.  SETVAR PARR,           13              ;EQU PAR4+1     ;DUPL 13,0      ;       DM     PARR   13
  175. BUF             EQU PAR1
  176. ;  POWER ON DETECTOR
  177.  SETVAR TST_1RUN,       WORD            ;EQU PARR+13    ;DW 0           ;       DM     TST_1RUN 2
  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       ;+ ПРИЗНАК ВКЛЮЧЕНИЯ МОТОРА
  237.  
  238. ;СМЕЩЕНИЯ ОТ IX
  239. _FLAG           EQU LOW (IX_BASE - FLAG)
  240. _FLAG1          EQU LOW (IX_BASE - FLAG1)
  241. _W_X1           EQU LOW (IX_BASE - W_X1)
  242. _W_X2           EQU LOW (IX_BASE - W_X2)
  243. _W_Y1           EQU LOW (IX_BASE - W_Y1)
  244. _W_Y2           EQU LOW (IX_BASE - W_Y2)
  245. _CUR_X          EQU LOW (IX_BASE - CUR_X)
  246. _CUR_Y          EQU LOW (IX_BASE - CUR_Y)
  247. _C_STAT         EQU LOW (IX_BASE - C_STAT)
  248. _CUR_VAL        EQU LOW (IX_BASE - CUR_VAL)
  249. _T_FLAG         EQU LOW (IX_BASE - T_FLAG)
  250. _MEMDSP         EQU LOW (IX_BASE - MEMDSP)
  251. _C_CNT          EQU LOW (IX_BASE - C_CNT)
  252. _TMP_W          EQU LOW (IX_BASE - TMP_W)
  253. _C_ACT          EQU LOW (IX_BASE - C_ACT)
  254. _FE_IMG         EQU LOW (IX_BASE - FE_IMG)
  255. _BORDER         EQU LOW (IX_BASE - BORDER)
  256. _SYS_P          EQU LOW (IX_BASE - SYS_P)
  257. _FUNC           EQU LOW (IX_BASE - FUNC)
  258. _FCNT           EQU LOW (IX_BASE - FCNT)
  259. _TIME_C         EQU LOW (IX_BASE - TIME_C)
  260. _K_5CNT         EQU LOW (IX_BASE - K_5CNT)
  261. _K_LAST         EQU LOW (IX_BASE - K_LAST)
  262. _K_CNT          EQU LOW (IX_BASE - K_CNT)
  263. _K_BUF          EQU LOW (IX_BASE - K_BUF)
  264. _TAIL           EQU LOW (IX_BASE - TAIL)
  265. _KS_ASH         EQU LOW (IX_BASE - KS_ASH)
  266. _KS_SHIFTS      EQU LOW (IX_BASE - KS_SHIFTS)
  267. _KS_UND         EQU LOW (IX_BASE - KS_UND)
  268. _KS_UNDS        EQU LOW (IX_BASE - KS_UNDS)
  269. _I_MAX          EQU LOW (IX_BASE - I_MAX)
  270. _I_MIN          EQU LOW (IX_BASE - I_MIN)
  271. _ED_CYL         EQU LOW (IX_BASE - ED_CYL)
  272. _PAR1           EQU LOW (IX_BASE - PAR1)
  273. _PAR2           EQU LOW (IX_BASE - PAR2)
  274. _PAR4           EQU LOW (IX_BASE - PAR4)
  275. _TST_IS1        EQU LOW (IX_BASE - TST_IS1)
  276. _RQCHAN         EQU LOW (IX_BASE - RQCHAN)
  277. _RQCOM          EQU LOW (IX_BASE - RQCOM)
  278. _RQBLN          EQU LOW (IX_BASE - RQBLN)
  279. _RQTRACK        EQU LOW (IX_BASE - RQTRACK)
  280. _RQBLOCK        EQU LOW (IX_BASE - RQBLOCK)
  281. _RQBADR         EQU LOW (IX_BASE - RQBADR)
  282. _RQHEAD         EQU LOW (IX_BASE - RQHEAD)
  283. _REP            EQU LOW (IX_BASE - REP)
  284. _BUFT           EQU LOW (IX_BASE - BUFT)
  285. _BUFSEC         EQU LOW (IX_BASE - BUFSEC)
  286.  
  287. ; REST OF SWITCH AREA
  288.  INIT_VAR 0xDF40
  289.  SETVAR CL_SW,          3               ;EQU 0XDF40
  290.  SETVAR SW_DO,          0               ;EQU CL_SW+3
  291.  SETVAR OUT_SW,         0               ;EQU CL_SW+3
  292.  SETVAR SW_CLR,         0               ;EQU OUT_SW
  293.  
  294. ; SOME DATA AREAS
  295.  SETVAR SV_ARE,         WORD            ;EQU SW_CLR
  296.  SETVAR ARR_CO,         16 + 3          ;EQU SV_ARE+2
  297.  SETVAR SG_ENC,         DWORD           ;EQU ARR_CO+16+3
  298.  SETVAR ENC_SI,         DWORD           ;EQU SG_ENC+4
  299.  SETVAR ENC_SO,         DWORD           ;EQU ENC_SI+4
  300.  SETVAR PAL_BUF,        0               ;EQU ENC_SO+4
  301.  
  302. ; FILLED SWITCH AREA
  303.  INIT_VAR CL_SW
  304.  SETVAR SW_C,           0               ;EQU CL_SW
  305.  SETVAR SW_PUT,         0               ;EQU CL_SW
  306.  SETVAR SW_CLL,         0               ;EQU CL_SW
  307.  SETVAR SW_SCO,         0               ;EQU CL_SW
  308.  SETVAR SW_RRL,         0               ;EQU CL_SW
  309.  SETVAR SW_SIZ,         0               ;EQU CL_SW
  310.  
  311. ;-----------------------
  312.