From: VK3YZW@VK3YZW
To: ALL

HI,
  THIS PROGRAM WAS A RESULT OF A PRIVATE REQUEST AND IS NOW PUT
ON THE BBS FOR ALL TO USE WHO MAY LIKE TO TAKE ADVANTAGE.

GOOD LUCK WITH IT....DON

Here below is a program that can control the TS940 to run under IBM XT.
The program is written by JA6FTL and his group.
The program is being used by JA6FTL and no bug report was found!
Good Luck, 73

Eric VS6EL @ VS6EL
; **********************************************************
;       TS-940 remote control programm for IBM-PC/AT/XT
;       1988/05 Southern NET
;   MBBIOS and MBMODE must be run before execute.
;   Com port 1-6(A-F) allowed.
;       Usage....... 940set_(port)_(parameter)(parameter)...
;       example         940set a FA00014073000;MD1;
; ***********************************************************


NUL     = 00h
TAB     = 09h
CR      = 0dh
LF      = 0ah
BEEP    = 07h
error   = 1
noerror = 0

print   macro string
       mov     ax,data
       mov     ds,ax
       lea     dx,string
       mov     ah,09h
       int     21h
       endm
putch   macro   ch
       mov     dl,ch
       mov     ah,02h
       int     21h
       endm

mg      group   code,data
data    segment
no_cn           db      BEEP,"Not channel [A-F]$",CR,LF
cmd_e_msg       db      BEEP,"ommamd error .Usage (channel) (parameter)",CR,LF,"$"
no_bios         db      BEEP,"Not loadedMBBIOS.$"
data    ends


cod     segment
       assume  cs:code;ds:code
       org     81h
channel label   byte
       org     82h
cmdline label   byte
start:
       org     100h
main    proc    near

       call    bios_chk        ; com bios exit ?

       modi,offset channel
argment:mov     al,[di]
       cmp     al,CR
       je      cmd_error       ;command error
       cmp     al,' '
       jne     port
       add     di,1
       loop    argment
port:
       push    ds
       call    chk_ch          ;channel check
       sub     al,'A'          ; get port idn
       mov     ah,0
       mov     bx,ax           ; CX is port idn
       pop     ds
       mov     di,offset cmdline
       add     di,2
get_cm
       mov     al,[di]
       add     di,1
       cmp     al,CR
       jz      e_p             ;end
       cmp     al,' '          ; skip space
       jz      get_cmd
       call    toupr
       call    outi
       loop    get_cmd
extprog:mov     al,0
       mov     ah,4ch
       int     21h
cmd_error:
       print   cmd_e_msg
       jmp     end_p
chk_ch:                         ;channel is A-F ?

       call    toupr           ; to upper
       cmp     al,'A'
       jl      no_cn_msg
       cmp     al,'G'
       jg      no_cn_msg
       ret
toupr:
       cmp     al,'Z'
       jl      not_mall
       sub     al,20h
not_small:
       ret
no_cn_msg:                      ;no channel msg
       print   no_cn
end_p:
       mov     al,0            ; nomal end
       mov     ah,4ch
       int     21h
bios_chk:
       mov     dx,00
       mov     ah,04
       int     14h
       cmp     a0aa55h
       jne     exit           ; bios no loaded
       ret
exit:
       print   no_bio

       jmp     end_p
outi:
       push    bx
       xor     dx,dx
       mov     dx,bx           ; load port_idn
       mov     ah,01h          ; sirial out cmd for int 14
       int     14h
       pop     bx
       ret

main    endp

code    ends
       end     main