|
ADDR_LPT EQU 0123H ;АДРЕС ПОРТА !!!!ЦИФРА ОТ БАЛДЫ - НЕ ПОМНЮ АДРЕС
MOV DX, ADDR_LPT ;АДРЕС ПОРТА В dx
MOV AX, SEG BUF1 ;ЗАГРУЗКА В СЕГМЕНТЫЙ РЕГИСТР
MOV DS, AX ;СЕГМЕНТА 1 БУФЕРА
ASSUME DS:SEG BUF1
LOOP_BUF1:
MOV EX, 00h ;ПУНКТ 0: Индекс массива = 0
MOV CX, 0H ;СЧЕТЧИК В 0
READ_LPT1:
IN AL, DX ;1. Читаем данные на разрядах 0-5 на входном регистре LPT
AND AL, 3FH
CMP AL, 0
JZ READ_LPT1 ;2. Если все биты(0-5) = 0 переходим к п.1 иначе идем дальше
TEST_BIT611:
IN AL, DX ;3. Проверяем бит 6 на входном регистре LPT
AND AL, 40H
CMP AL, 0H
JZ TEST_BIT611 ;4. Если бит = 0 то переходим к п.3 иначе идем дальше
IN AL, DX ;5. Читаем данные на разрядах 0-5 на входном регистре LPT
AND AL, 3FH
MOV DS:[EX], AL ;6. Заносим это значение в массив размерностью (!!!!!128КБ) ПЕРВЫЕ 64К
INC EX ;7. Инкрементируем индекс массива
TEST_BIT601:
IN AL, DX ;8. Проверяем бит 6 на входном регистре LPT
AND AL, 40H
CMP AL, 40H
JZ TEST_BIT601 ;9. Если бит = 1 то переходим к п.8 иначе идем дальше
LOOP READ_LPT1 ; 10. Переходим к п. 3
;*********** ДАЛЬШЕ ВСЕ ТОЖ САМОЕ, ТОКА БУФЕР BUF2, СЛЕДУЮЩИЕ 64К
MOV AX, SEG BUF2 ;ЗАГРУЗКА В СЕГМЕНТЫЙ РЕГИСТР
MOV DS, AX ;СЕГМЕНТА 2 БУФЕРА
ASSUME DS:SEG BUF2
LOOP_BUF2:
MOV EX, 00h ;ПУНКТ 0: Индекс массива = 0
MOV CX, 0H ;СЧЕТЧИК В 0
READ_LPT2:
IN AL, DX ;1. Читаем данные на разрядах 0-5 на входном регистре LPT
AND AL, 3FH
CMP AL, 0
JZ READ_LPT2 ;2. Если все биты(0-5) = 0 переходим к п.1 иначе идем дальше
TEST_BIT612:
IN AL, DX ;3. Проверяем бит 6 на входном регистре LPT
AND AL, 40H
CMP AL, 0H
JZ TEST_BIT612 ;4. Если бит = 0 то переходим к п.3 иначе идем дальше
IN AL, DX ;5. Читаем данные на разрядах 0-5 на входном регистре LPT
AND AL, 3FH
MOV DS:[EX], AL ;6. Заносим это значение в массив размерностью (!!!!!128КБ) ВТОРЫЕ 64К
INC EX ;7. Инкрементируем индекс массива
TEST_BIT602:
IN AL, DX ;8. Проверяем бит 6 на входном регистре LPT
AND AL, 40H
CMP AL, 40H
JZ TEST_BIT602 ;9. Если бит = 1 то переходим к п.8 иначе идем дальше
LOOP READ_LPT2 ; 10. Переходим к п. 3
Спрашивай, если че
E-mail: info@telesys.ru