SUB AL, 4BH
JNZ ISTYP
MOV CX, 18
CALL MKCHR
ISNSI: MOV BX, OFFSET WEN53 ;AT+ISNSI
MOV DX, 21
CALL TSCHR
MOV CX, 22
CALL RECVCHR
MOV BX, OFFSET WEN20+80
MOV AL, [BX]
SUB AL, 4BH
JNZ ISNSI
MOV CX, 18
CALL MKCHR
IMCBF: MOV BX, OFFSET WEN54 ;AT+IMCBF
MOV DX, 11
CALL TSCHR
MOV CX, 22
CALL RECVCHR
MOV BX, OFFSET WEN20+80
MOV AL, [BX]
SUB AL, 4BH
JNZ IMCBF
MOV CX, 18
CALL MKCHR
NOP
ISNMD: MOV BX, OFFSET WEN55 ;AT+ISNMD
MOV DX, 9
CALL TSCHR
MOV CX, 22
CALL RECVCHR
MOV BX, OFFSET WEN20+80
MOV AL, [BX]
SUB AL, 4BH
JNZ ISNMD
MOV CX, 18
CALL MKCHR
NOP
NOP
MOV CX, 1
RSNDB: PUSH CX
NOP
RSND1: MOV BX, OFFSET WEN9
MOV DX, 33
CALL TSCHR
NOP
POP CX
LOOP RSNDB
NOP
SNDMAP: MOV BX, OFFSET WEN31
MOV DX, 28096
CALL TSCHR
NOP
NOP
NOP
NOP
SNDEEE: MOV BX, OFFSET WEN56
MOV DX, 5
CALL TSCHR
;ISST: MOV BX, OFFSET WEN11
; MOV DX, 12
; CALL TSCHR
; MOV CX, 18
; CALL RECVCHR
; MOV CX, 20
; CALL MKCHR
; NOP
;LKLK: MOV DX, 3FDH
; IN AL, DX
; TEST AL, 1EH
; JNZ LKLK
NOP
NOP
ANM: MOV CX, 40000
BNM: NOP
NOP
LOOP BNM
NOP
MOV CX, 10
SNDCLS: PUSH CX
MOV BX, OFFSET WEN58
MOV DX, 3
CALL TSCHR
MOV CX, 10
RRR: PUSH CX
MOV CX, 60000
RRR1: NOP
NOP
LOOP RRR1
RRR2: POP CX
NOP
LOOP RRR
POP CX
LOOP SNDCLS
SNDAT: MOV DX, 5
MOV BX, OFFSET WEN60
CALL TSCHR
MOV CX, 11
MOV BX, OFFSET WEN20
CALL RCVCHR
MOV CX, 12
MOV BX, OFFSET WEN20
CALL MKCHR
NOP
JMP KEY
NOP
JMP KEY
ERR0: JMP ERR3
TSCHR PROC NEAR
TS: PUSH DX
TSO: MOV DX, 3FDH
IN AL, DX
TEST AL, 20H
JZ TSO
MOV DX, 3F8H
MOV AL, [BX]
OUT DX, AL
MOV CX, 200
YES: NOP
NOP
LOOP YES
INC BX
POP DX
DEC DX
JNE TS
RET
TSCHR ENDP
ERR3: JMP ERR1
NOP
RECVCHR PROC NEAR
RECV: MOV DL, CL
MOV BX, OFFSET WEN20
RECV1: PUSH DX
RECV2: MOV DX, 3FDH
IN AL, DX
TEST AL, 01H
JZ RECV2
MOV DX, 3F8H
IN AL, DX
MOV [BX], AL
INC BX
POP DX
DEC DL
JZ PP
SUB AL, 4BH
JZ PP0
LOOP RECV1
JMP PP
PP0: MOV AL, 4BH
MOV BX, OFFSET WEN20+80
MOV [BX], AL
PP: RET
RECVCHR ENDP
RDSTS1: JMP RDSTS
ERR1: JMP ERR
MKCHR PROC NEAR
MK: PUSH AX
PUSH bx
PUSH DX
MK1: MOV BX, OFFSET WEN20
MK2: MOV AL, [BX]
PUSH BX
AND AL, 7FH
MOV BX, 0
MOV AH, 14
INT 10H
POP BX
INC BX
LOOP MK2
MOV CX, 85
MOV BX, OFFSET WEN20
MOV AL, 2EH
MAD: MOV [BX], AL
INC BX
LOOP MAD
MOV AL, 0AH
MOV AH, 14
MOV BX, 0
INT 10H
POP DX
POP BX
POP AX
RET
MKCHR ENDP
KEY: MOV AH, 01
INT 16H
JZ KEY
MOV AH, 0
INT 16H
CMP AL, 0DH
JNZ RDSTS1
MOV AL, 0AH
MOV BX, 0
MOV AH, 14
INT 10H
MOV AX, 4C00H
INT 21H
RET
ERR: JMP ERROR
RDS: JMP RDSTS
NOP
;FS: MOV CX, 0200H
; MOV DX, [0082h]
; MOV AH, 3CH
; INT 21H
; MOV BX, AX
; MOV CX, 1024H
; MOV DX, data-seg MNMN
; mov ah, 3fh
; INT 21H
; NOP
; MOV CX, AX
; MOV BX, data-seg MNMN
;FS1: MOV DX, 3FDH
; IN AL, DX
; TEST AL, 1EH
; JNZ ERROR
;FS2: TEST AL, 01H
; NOP
; TEST AL, 02H
; JZ RDS
;FS3: MOV DX, 3F8H
; MOV AL, [BX]
; OUT DX, AL
; DEC BX
; LOOP FS1
; JMP RDSTS
ERROR: MOV DX, 3F8H
IN AL, DX
MOV AL, "?"
MOV AH, 14
MOV BX, 0
INT 10H
MOV CX, 1
MOV DX, 3FDH
IN AL, DX
YS: MOV AH, 14
INT 10H
LOOP YS
MOV AL, 0AH
MOV AH, 14
MOV BX, 0
INT 10H
JMP RDSTS
DISPCHR PROC NEAR
PUSH BX
MOV BX, 0
MOV AH, 14
INT 10H
POP BX
RET
DISPCHR ENDP
SCAR PROC NEAR
PUSH BX
MOV CX, 40
MOV BX, OFFSET WEN20
SCA1: XOR AX, AX
MOV AL, [BX]
SUB AL, 49H
JZ SCA2
INC BX
LOOP SCA1
JMP SCA9
SCA2: MOV CX, 5
XCHG SI, BX
MOV DI, OFFSET WEN16
SCA3: MOV AL, [SI]
MOV [DI], AL
INC SI
INC DI
DEC CX
JNZ SCA3
SCA4: MOV CX, 3
MOV SI, OFFSET WEN16+2
MOV DI, OFFSET WEN9+10
CLD
SCA5: MOV AL, [SI]
MOV [DI], AL
INC SI
INC DI
DEC CX
JNZ SCA5
SCA6: MOV CX, 3
MOV SI, OFFSET WEN16+2
MOV DI, OFFSET WEN11+8
SCA61: MOV AL, [SI]
MOV [DI], AL
INC SI
INC DI
DEC CX
JNZ SCA61
SCA7: MOV CX, 3
MOV SI, OFFSET WEN16+2
MOV DI, OFFSET WEN12+9
SCA71: MOV AL, [SI]
MOV [DI], AL
INC SI
INC DI
DEC CX
JNZ SCA71
SCA8: MOV CX, 3
MOV SI, OFFSET WEN16+2
MOV DI, OFFSET WEN13+9
SCA81: MOV AL, [SI]
MOV [DI], AL
INC SI
INC DI
DEC CX
JNZ SCA81
POP BX
SCA9: RET
SCAR ENDP
KCHR PROC NEAR
K: PUSH AX
PUSH bx
PUSH DX
K1: MOV BX, OFFSET WEN20
K2: MOV AL, [BX]
PUSH BX
AND AL, 7FH
MOV BX, 0
MOV AH, 14
INT 10H
POP BX
INC BX