modem driver

ZXNet echo conference «code.zx»

From 500:812/03.00 To All 25 February 1998

Hi All! Here is the modem driver that I made it for xreversy. unfortunately I restored the driver using this Minor errors are possible. ;data transmission receiving unit with control ;for errors (by means of control ;amounts) ;(C)CREATOR product 1997 ;the block interacts with the modem driver ;command and address compatible with ;MMD_2.20 drivers. ;At the moment of calling this or that procedure ;THE DRIVER MUST BE. INITIALIZED, then ;is completely ready for work. LEN EQU 16; length of the transmitted block ;(transfers 2 bytes more due to ;checksum) ;SPEED - cell containing the current speed LOAD_B; receiving block ;the block will be accepted until it is "blurred" ;that is, until we accept it or ;someone won't press caps shift ;register A on return contains ;return code. ;A=0 BCE OK , A=1 emergency exit ;A=2 on line and short beeps ;A=3 call detected LOAD_P LOAD_0 CALL CL_BUF CALL CAPS; accept block CALL NC,ER_BL LD A,BORDER CALL #C00C JR C,LOAD_0 AND A JR Z,LOAD_0 CP 1 RET NZ ; checking the received checksum ; block 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_0LD B,15 TRANS_M PUSH BC; we convey that everything LD BC,1; ok accepted LD A,"C" LD (BUFFER),A LD A,(SPEED) CALL #C012 EI LD B.5 PAUSE HALT DJNZ PAUSE D.I. POP B.C. DJNZ TRANS_M XOR A RET ER_BL; emergency exit ;request confirmation to exit ;you must enter Yes or No LD A,223 IN A,254 BIT 4.A JR Z,TO_EX; let's go out 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; check for coercion IN A,254; effective exit RRCA RET SAVE_B SAVE_BC CALL CL_BUF; block transfer 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; Are we catching everything 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; speed CL_BUF LD HL,BUFFERLD DE,BUFFER+1 LD BC, LEN+2 LD (HL),0 LDIR RET DEFS 64 BUFF DEFS 300 BUFFER EQU BUFF; buffer address for reception ▌▌║▌█▐│▌▌▐▐ WiTh The BeST wIsheS fROM ▌▌║▌█▐│▌▌▐▐ *C*R*E*A*T*O*R* ▌812/03.00▐ -+- zxasm+ plus