ZXNet эхоконференция «code.zx»


тема: modem driver



от: 500:812/03.00
кому: All
дата: 25 Feb 1998
Hi All ! Вот вам драйверок модема который я сделал для xreversy. к сожалению драйвер я восстанавливал по этому возможны мелкие ошибки. ;блок приема передачи данных с контролем ;на ошибки ( по средствам контрольной ;суммы) ;(C)CREATOR product 1997 ;блок взаимодействует с драйвером модема ;совместимым по командам и адресам с ;MMD_2.20 driers. ;HА МОМЕHТ ВЫЗОВА ТОЙ ИЛИ ИHОЙ ПРОЦЕДУРЫ ;ДРАЙВЕР ДОЛЖЕH БЫТЬ. ИHИЦИАЛИЗИРОВАH,то ;есть полностью готовым к работе. LEN EQU 16; длинна передаваемого блока ;(передается на 2 байта больше из за ;контрольной суммы) ;SPEED - ячейка содержащая текущую скорость LOAD_B; прием блока ;блок будет приниматься до "опосинения" ;то есть пока мы его не примем или ;кто нибудь не нажмет caps shift ;в регистре A по возвращению находится ;код возврата. ;A=0 BCE OK , A=1 аварийный выход ;A=2 в линиии короткие гудки ;A=3 обнаружен вызов LOAD_P LOAD_0 CALL CL_BUF CALL CAPS; принимаем блок CALL NC,ER_BL LD A,BORDER CALL #C00C JR C,LOAD_0 AND A JR Z,LOAD_0 CP 1 RET NZ ; проверка контрольной суммы принятого ; блока LD HL,BUFFER XOR A LD B,LEN ADD_C ADD A,(HL) INC HL DJNZ ADD_C CP (HL) JR NZ,LOAD_0 LD HL,BUFFER XOR A LD B,LEN SUB_C SUB (HL) INC HL DJNZ SUB_C INC HL CP (HL) JR NZ,LOAD_0 LD B,15 TRANS_M PUSH BC; передаем что все LD BC,1; нормально принято LD A,"C" LD (BUFFER),A LD A,(SPEED) CALL #C012 EI LD B,5 PAUSE HALT DJNZ PAUSE DI POP BC DJNZ TRANS_M XOR A RET ER_BL; аварийный выход ;запрашиваем подтверждение на выход ;надо вести Yes или No LD A,223 IN A,254 BIT 4,A JR Z,TO_EX; выходим LD A,127 IN A,254 BIT 3,A RET Z JR ER_BL TO_EX POP HL LD A,1 RET CAPS LD A,254; проверка на прину- IN A,254; дительный выход RRCA RET SAVE_B SAVE_BC CALL CL_BUF; передача блока LD HL,BUFFER LD B,LEN XOR A ADD_CR ADD A,(HL) INC HL DJNZ ADD_CR LD (HL),A LD HL,BUFFER LD B,LEN XOR A SUB_CR SUB (HL) INC HL DJNZ SUB_CR INC HL LD (HL),A LD BC,LEN+2 LD A,(SPEED) CALL #C012 CALL CAPS; ловим все ли OK? CALL NC,ER_BL XOR A LD (BUFFER),A LD (SDS0+1),A SDS0 LD A,0 DEC A LD (SDS0+1),A JR Z,SAVE_BC LD A,BORDER CALL #C00C JR C,SDS0 AND A JR Z,SDS0 CP 1 RET NZ LD A,(BUFFER) CP "C" JR NZ,SDS0 XOR A RET SPEED DEFB 0; скорость CL_BUF LD HL,BUFFER LD DE,BUFFER+1 LD BC,LEN+2 LD (HL),0 LDIR RET DEFS 64 BUFF DEFS 300 BUFFER EQU BUFF; адрес буффера для ;приема ▌▌║▌█▐│▌▌▐▐ WiTh The BeST wIsheS fROM ▌▌║▌█▐│▌▌▐▐ *C*R*E*A*T*O*R* ▌812/03.00▐ -+- zxasm+ плюсовой




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
UFO-мания - UFO-2 или снова неуловимые.
News - Info Guide #12 was finally released, LVD is soldering a new version of ZXNetUSB, Yerzmyey has released an interactive novel.
Реклама - реклама и объявления.
Разное - ЧЕМПИОНАТ ЗМЕЙ. Новый конкурс.
Обо всём - Автомо6или-y6ийцы.

В этот день...   8 мая