home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / MODEMS / MODEM7 / M7TV-9.ASM < prev    next >
Assembly Source File  |  2000-06-30  |  16KB  |  530 lines

  1. ;                                08/23/85
  2. ;                                  TCS
  3. ; M7TV-9.ASM -- Routines straightened up to comfigure it more like
  4. ;         the standard modem 740 programs. The set up routine was 
  5. ;         removed from the start up routine. The default baud rate is
  6. ;        1200 Baud the printer is available. The clears screen in
  7. ;        the initial signon routine was removed. This version is
  8. ;        mainly configured for the TPC-1 but It will support the other
  9. ;        802 and 803's
  10. ;  
  11. ; M7TV-8.ASM -- TeleVideo TPC-I added.                              07/08/85
  12. ;               Also disabled the printer due to excessive delay         JJW
  13. ;               when none is connected.  This was accopmlished by
  14. ;        adding 2 commands to SET.
  15. ;        PRINTON enables the print capability.
  16. ;        PRINTOFF disables the print capability.
  17. ;        Note that you must still use ^P to actually enable
  18. ;        or disable printing.
  19. ;
  20. ; M7TV-7.ASM -- TeleVideo TS-802/803/803H overlay file for MDM7xx.  10/23/84
  21. ;
  22. ; You will want to look this file over carefully. There are a number of
  23. ; options that you can use to configure the program to suit your taste.
  24. ; This file adapts the modem port on the TeleVideo TS-802, TS-803 BIOS
  25. ; Versions 1.3 and 1.5, the TS-803H, and the TPC-I to the modem program.
  26. ;
  27. ; The TPC-I is essentially the same as the TS803.
  28. ;
  29. ; Edit this file for your preferences then follow the "TO USE:" example
  30. ; shown below.
  31. ;
  32. ;       NOTE:  If using a TS-803 or TS-803H, the SNDREADY equate must be 
  33. ;           set to the value of the same label in the body of MDM7.
  34. ;
  35. ; Use the "SET" command to change the baudrate when desired.  It starts
  36. ; out at 1200 baud when the program is first called up.
  37. ;
  38. ;    TO USE: First edit this file filling in answers for your own
  39. ;        equipment.  Then assemble with ASM.COM or equivalent
  40. ;        assembler.  Then use DDT to overlay the the results
  41. ;        of this program to the original .COM file:
  42. ;
  43. ;        A>DDT MDM7xx.COM
  44. ;        DDT VERS 2.2
  45. ;        NEXT  PC
  46. ;        4A00 0100
  47. ;        -IM7TV-8.HEX        (note the "I" command)
  48. ;        -R            ("R" loads in the .HEX file)
  49. ;        NEXT  PC
  50. ;        4A00 0000
  51. ;        -G0            (return to CP/M)
  52. ;        A>SAVE 73 MDM7xx.COM    (now have a modified .COM file)
  53. ;
  54. ; =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =
  55. ;
  56. ; 07/08/85  Added info on the TPC-I.    - John Warkentin
  57. ; 10/23/84  Added 803 INIT routines for
  58. ;           BIOS version 1.3 and 1.5
  59. ;           and 803H                    - Tim Chiaretto/Ernie Graves
  60. ; 09/08/84  Fixed 2nd trivial 803 error - Tim Chiaretto
  61. ; 08/15/84  Fixed a trivial 803 error   - Irv Hoff
  62. ; 08/08/84  Fixed for 802/803 both, with
  63. ;        information from M7TVI-3    - Irv Hoff
  64. ; 11/11/83  Renamed to M7TV-1.ASM    - Irv Hoff
  65. ; 07/27/83  Renamed to work with MDM711    - Irv Hoff
  66. ; 07/01/83  Revised to work with MDM711    - Irv Hoff
  67. ; 06/22/83  Revised to work with MDM711    - Irv Hoff
  68. ; 05/27/83  Updated to work with MDM709    - Irv Hoff
  69. ; 05/15/83  Revised to work with MDM708    - Irv Hoff
  70. ; 04/27/83  Revised to work with TV802    - Irv Hoff
  71. ; 02/17/83  Modified MDM703CF for Datapoint
  72. ;        1560 computers using an external
  73. ;        modem            - Irv Hoff
  74. ;
  75. ;=======================================================================
  76. ;
  77. YES:        EQU    0FFH
  78. NO:        EQU    0
  79. ;
  80. ;
  81. ; Select one of the following three choices for your computer
  82. ;
  83. TV802:        EQU    NO
  84. TV803:        EQU    YES        ;TV803 or TV803H or TPC-I
  85. ;
  86. ;
  87. ; The following address must be obtained from the body of the main pro-
  88. ; gram, if using a TV803/TV803H.  Value is immaterial if using a TV802.
  89. ;
  90. SNDREADY:    EQU    1E41H        ;location of label in MDM740
  91. ;
  92. ;=======================================================================
  93. ;
  94. ; Normal equates
  95. ;
  96. BELL:        EQU    07H        ;bell
  97. CR:        EQU    0DH        ;carriage return
  98. ESC:        EQU    1BH        ;escape
  99. LF:        EQU    0AH        ;linefeed
  100. ;
  101. ;
  102. ; Special equates for Televideo computers
  103. ;
  104.          IF    TV802
  105. PORT:        EQU    20H        ;TeleVideo ST-802 data port
  106. BAUDRP:        EQU    08H        ;CTC port for baud rate
  107. MODCTL1:    EQU    PORT+2        ;modem control port
  108. MODCTL2:    EQU    PORT+2        ;modem control port
  109. MODDATP:    EQU    PORT        ;modem data port
  110. MODDCDB:    EQU    4        ;carrier detect bit
  111. MODDCDA:    EQU    0        ;value when active
  112. MODRCVB:    EQU    1        ;bit to test for receive ready
  113. MODRCVR:    EQU    1        ;value when ready
  114. MODSNDB:    EQU    4        ;bit to test for send ready
  115. MODSNDR:    EQU    4        ;value when ready
  116.          ENDIF            ;TV802
  117. ;
  118.          IF    NOT TV802    ;MOSTEK 3801 STI TV803 or TV803H
  119. PORT:        EQU    2FH        ;TeleVideo TS-803 data port
  120. BAUDRP:        EQU    2BH        ;CTC port for baud rate
  121. MODCTL1:    EQU    PORT-2        ;modem control port for input
  122. MODCTL2:    EQU    PORT-1        ;modem control port for output
  123. MODDATP:    EQU    PORT        ;modem data port
  124. MDMIDR:         EQU     20H             ;indirect register
  125. MDMGIO:         EQU     21H             ;GP I/O register
  126. MDMINT:         EQU     27H             ;interrupt mask
  127. MDMPVR:         EQU     28H             ;pointer/vector register
  128. MDMBCT:         EQU     29H             ;baud rate control port
  129. MDMCMD:         EQU     2CH             ;command port
  130. MODRCVB:    EQU    80H        ;bit to test for receive ready
  131. MODRCVR:    EQU    80H        ;value when ready
  132. MODSNDB:    EQU    80H        ;bit to test for send ready
  133. MODSNDR:    EQU    80H        ;value when ready
  134.          ENDIF            ;not TV802
  135. ;
  136. ;
  137.         ORG    100H
  138. ;
  139.         DS    3    ;(for  "JMP   START" instruction)
  140. ;
  141. PMMIMODEM:    DB    NO    ;yes=PMMI S-100 Modem            103H
  142. AUTODIAL:    DB    YES    ;yes=HAYES Smartmodem, no=non-PMMI    104H
  143. TOUCHPULSE:    DB    'T'    ;T=touch, P=pulse (Smartmodem-only)    105H
  144. CLOCK:        DB    40    ;clock speed in MHz x10, 25.5 MHz max.    106H
  145.                 ;20=2 MHh, 37=3.68 MHz, 40=4 MHz, etc.
  146. MSPEED:        DB    5    ;0=110 1=300 2=450 3=600 4=710 5=1200    107H
  147.                 ;6=2400 7=4800 8=9600 9=19200 default
  148. BYTDLY:        DB    2    ;0=0 delay  1=10ms  5=50 ms - 9=90 ms    108H
  149.                 ;default time to send character in ter-
  150.                 ;minal mode file transfer for slow BBS.
  151. CRDLY:        DB    2    ;0=0 delay 1=100 ms 5=500 ms - 9=900 ms 109H
  152.                 ;default time for extra wait after CRLF
  153.                 ;in terminal mode file transfer
  154. NOOFCOL:    DB    5    ;number of DIR columns shown        10AH
  155. SETUPTST:    DB    yes    ;yes=user-added Setup routine        10BH
  156. SCRNTEST:    DB    YES    ;Cursor control routine         10CH
  157. RETRY:        DB    NO    ;yes=reset the error limit to try again    10DH
  158.                 ;no=abort after 10 consecutive errors
  159. BAKUPBYTE:    DB    YES    ;yes=change any file same name to .BAK    10EH
  160. CRCDFLT:    DB    YES    ;yes=default to CRC checking        10FH
  161. TOGGLECRC:    DB    YES    ;yes=allow toggling of CRC to Checksum    110H
  162. CONVRUB:    DB    YES     ;yes=convert rub to backspace        111H
  163. TOGGLERUB:    DB    YES    ;yes=allow toggling of rub to backspace    112H
  164. ADDLF:        DB    NO    ;no=no LF after CR to send file in    113H
  165.                 ;terminal mode (added by remote echo)
  166. TOGGLELF:    DB    YES    ;yes=allow toggling of LF after CR    114H
  167. TRANLOGON:    DB    YES    ;yes=allow transmission of logon    115H
  168.                 ;write logon sequence at location LOGON
  169. SAVCCP:        DB    YES    ;yes=do not overwrite CCP        116H
  170. LOCONEXTCHR:    DB    NO    ;yes=local command if EXTCHR precedes    117H
  171.                 ;no=external command if EXTCHR precedes
  172. TOGGLELOC:    DB    YES    ;yes=allow toggling of LOCONEXTCHR    118H
  173. LSTTST:        DB    NO    ;yes=printer available on printer port    119H
  174. XOFFTST:    DB    YES    ;yes=check for XOFF from remote while    11AH
  175.                 ;sending a file in terminal mode
  176. XONWAIT:    DB    NO    ;yes=wait for XON after CR while    11BH
  177.                 ;sending a file in terminal mode
  178. TOGXOFF:    DB    YES    ;yes=allow toggling of XOFF checking    11CH
  179. IGNORCTL:    DB    YES    ;yes=CTL-chars above ^M not displayed    11DH
  180. EXTRA1:        DB    0    ;for future expansion            11EH
  181. EXTRA2:        DB    0    ;for future expansion            11FH
  182. BRKCHR:        DB    '@'-40H    ;^@ = Send a 300 ms. break tone        120H
  183. NOCONNCT:    DB    'N'-40H    ;^N = Disconnect from the phone line    121H
  184. LOGCHR:        DB    'L'-40H    ;^L = Send logon            122H
  185. LSTCHR:        DB    'P'-40H    ;^P = Toggle printer            123H
  186. UNSAVE:        DB    'R'-40H    ;^R = Close input text buffer        124H
  187. TRANCHR:    DB    'T'-40H ;^T = Transmit file to remote        125H
  188. SAVECHR:    DB    'Y'-40H    ;^Y = Open input text buffer        126H
  189. EXTCHR:        DB    '^'-40H    ;^^ = Send next character        127H
  190. ;
  191. ;
  192.         DS    2        ;                128H
  193. ;
  194. IN$MODCTL1:    IN    MODCTL1 ! RET    ;in modem control port        12AH
  195. ;
  196.          IF    TV802
  197.         DS    7
  198.          ENDIF            ;TV802
  199. ;
  200.          IF NOT    TV802          ;TV803 or TV803H
  201. IN$MODCTL2:    IN    MODCTL2 ! RET    ;out modem control port        15AH
  202.          DS    4
  203.          ENDIF            ;not TV802
  204. ;
  205. OUT$MODDATP:    OUT    MODDATP ! RET    ;out modem data port        134H
  206.         DS    7
  207. IN$MODDATP:    IN    MODDATP ! RET    ;in modem data port        13EH
  208.         DS    7
  209. ;
  210. ANI$MODRCVB:    ANI    MODRCVB    ! RET    ;bit to test for receive ready    148H
  211. CPI$MODRCVR:    CPI    MODRCVR    ! RET    ;value of rec. bit when ready    14BH
  212. ANI$MODSNDB:    ANI    MODSNDB    ! RET    ;bit to test for send ready    14EH    
  213. CPI$MODSNDR:    CPI    MODSNDR    ! RET    ;value of send bit when ready    151H
  214. ;
  215.          IF    TV802
  216.         DS    6        ;                154H
  217. OUT$MODCTL1:    OUT    MODCTL1    ! RET    ;out modem control port #2    15AH
  218. OUT$MODCTL2:    OUT    MODCTL2    ! RET    ;out modem control port #1    15DH
  219.          ENDIF            ;TV802
  220. ;
  221.          IF NOT    TV802        ;TV803 or TV803H
  222.         DS    10        ;                154H
  223.         RET            ;                15EH
  224.         RET            ;                15FH
  225.          ENDIF            ;not TV802
  226. ;
  227. LOGONPTR:    DW    LOGON        ;for user message.        160H
  228.          IF    TV802
  229.         DS    6
  230. JMP$GOODBYE:    JMP    GOODBYE        ;                168H
  231.          ENDIF            ;TV802
  232. ;
  233.          IF NOT    TV802        ;TV803 or TV803H
  234.         DS    9
  235.          ENDIF            ;not TV802
  236. ;
  237. JMP$INITMOD:    JMP    INITMOD        ;go to user written routine    16BH
  238.         RET  !    NOP  !    NOP    ;(by-passes PMMI routine)    16EH
  239.         RET  !    NOP  !    NOP    ;(by-passes PMMI routine)    171H
  240.         RET  !    NOP  !    NOP    ;(by-passes PMMI routine)    174H
  241. JMP$SETUPR:    JMP    SETUPR        ;                177H
  242. JMP$SPCLMENU:    JMP    SPCLMENU    ;                17AH
  243. JMP$SYSVER:    JMP    SYSVER        ;                17DH
  244. JMP$BREAK:    JMP    SENDBRK        ;                180H
  245. ;
  246. ;
  247. ; Do not change the following six lines
  248. ;
  249. JMP$ILPRT:    DS    3        ;                183H
  250. JMP$INBUF:    DS    3        ;                186H
  251. JMP$INLNCOMP:    DS    3        ;                189H
  252. JMP$INMODEM:    DS    3        ;                18CH
  253. JMP$NXTSCRN:    DS    3        ;                18FH
  254. JMP$TIMER:    DS    3        ;                192H
  255. ;
  256. ;
  257. ; Clear sequences -- CLREOS is clear to end of screen, CLRSCRN is clear
  258. ; entire screen.  Last entry must be 0.  Any other 0's act as NOP's.
  259. ;
  260. CLREOS:        CALL    JMP$ILPRT    ;                195H
  261.         DB    ESC,'y',0,0,0    ;ESC y - clear to end of screen    198H
  262.         RET            ;                19DH
  263. ;
  264. CLRSCRN:    CALL    JMP$ILPRT    ;                19EH
  265.         DB    ESC,2AH,0,0,0    ;ESC * clear CRT, home cursor    11AH
  266.         RET            ;                1A6H            
  267. ;
  268. ;
  269. SYSVER:        CALL    JMP$ILPRT    ;                1A7H
  270.         DB    'TELVIDEO TPC-1'
  271. ;
  272.          IF    TV802
  273.         DB    '2, modem port 20H'
  274.          ENDIF            ;TV802
  275. ;
  276.         DB    CR,LF,LF,0
  277.  
  278. NPRTMSG:        CALL    JMP$ILPRT
  279.         DB    'Printer ',0
  280.         LDA    LSTTST
  281.         ORA    A
  282.         JNZ    SYSVER1
  283.         CALL    JMP$ILPRT
  284.         DB    'IS NOT available.',CR,LF,0
  285.         RET
  286. SYSVER1:    CALL    JMP$ILPRT
  287.         DB    'IS available.',CR,LF,0
  288.         RET
  289. ;.....
  290. ;
  291. ;
  292. ;-----------------------------------------------------------------------
  293. ;
  294. ; NOTE:  You can change the SYSVER message to be longer or shorter.  The
  295. ;     end of your last routine should terminate by 0400H (601 bytes
  296. ;     available after start of SYSVER) if using the Hayes Smartmodem
  297. ;     or by address 0C00H (2659 bytes) otherwise.
  298. ;
  299. ;-----------------------------------------------------------------------
  300. ;
  301. ; You can put in a message at this location which can be called up with
  302. ; CTL-L if TRANLOGON has been set YES.    You can put in several lines if
  303. ; desired.  End with a 0.
  304. ;
  305. ;
  306. LOGON:    DB    'Greetings from a TeleVideo user',CR,LF,0
  307. ;
  308. ;=======================================================================
  309. ;
  310. ;
  311. ; This routine allows a 300 ms. break tone to be sent to reset some
  312. ; time-share computers.
  313. ;
  314. SENDBRK:
  315.      IF    TV802
  316.     MVI    A,5
  317.     OUT    MODCTL1
  318.     MVI    A,0F8H        ;send a break tone
  319.     JMP    GOODBYE1
  320.      ENDIF            ;TV802
  321. ;
  322.      IF NOT TV802        ;TV803 or TV803H
  323.     RET
  324.      ENDIF            ;not TV802
  325. ;.....
  326. ;
  327. ;
  328. ; This routine sends a 300 ms. break tone and sets DTR low for the same
  329. ; length of time to disconnect some modems such as the Bell 212A, etc.    
  330. GOODBYE:
  331.      IF    TV802
  332.     MVI    A,5
  333.     OUT    MODCTL1        ;send to the status port
  334.     MVI    A,068H        ;turn off dtr, send break
  335. ;
  336. GOODBYE1:
  337.     OUT    MODCTL1    
  338.     MVI    B,3        ;wait 300 ms.
  339.     CALL    JMP$TIMER
  340.     MVI    A,5
  341.     OUT    MODCTL1
  342.     MVI    A,0E8H        ;restore to normal, 8 bits, dtr on, etc.
  343.     OUT    MODCTL1
  344.      ENDIF            ;TV802
  345. ;
  346.     RET
  347. ;.....
  348. ;
  349. ;
  350. ; Televideo TS-802 baud rate change.  Sets CTC at port 08h for baudrate
  351. ; in/out.
  352. ;
  353.      IF    TV802
  354. INITMOD:MVI    A,0        ;select reg.
  355.     OUT    MODCTL1        ;send to the status port
  356.     MVI    A,18H        ;reset the z8sio chip
  357.     OUT    MODCTL1        ;send to the status port
  358.     MVI    A,4        ;select reg.
  359.     OUT    MODCTL1        ;send to the status port
  360.     MVI    A,44H        ;16x, 1-stop, no parity
  361.     OUT    MODCTL1        ;send to the status port
  362.     MVI    A,3        ;select reg.
  363.     OUT    MODCTL1        ;send to the status port
  364.     MVI    A,0C1H        ;enable receive section
  365.     OUT    MODCTL1        ;send to the status port
  366.     MVI    A,5        ;select reg.
  367.     OUT    MODCTL1        ;send to the status port
  368.     MVI    A,0EAH        ;dtr, rts, 8-bits, enable send section
  369.     OUT    MODCTL1        ;send to the status port
  370. ;
  371. INITMOD1:
  372.     MVI    A,5        ;default transfer time to 1200 baud
  373.     STA    MSPEED
  374.     MVI    A,47H
  375.     OUT    BAUDRP
  376. ;
  377. INITMOD2:
  378.     MVI    A,20H        ;default to 1200 baud
  379.     OUT    BAUDRP
  380.     RET
  381.      ENDIF            ;TV802
  382. ;
  383.      IF NOT    TV802           ;TV803 or TV803H or TPC-I
  384. INITMOD:
  385.     IN    MDMBCT        ;GET TIMER VALUE
  386.     PUSH    PSW        ;SAVE IT
  387.     MVI    A,0FH
  388.     OUT    MDMINT        ;KILL INTERRUPTS
  389. ;
  390.     POP    PSW        ;GET TIMER VALUE
  391.     OUT    MDMBCT        ;RESTART
  392.     MVI    A,88H        ;NO PARITY,8 BIT,1 STOP,X16
  393.     OUT    MDMCMD
  394.     MVI    A,01        ;ENABLE RX
  395.     OUT    MODCTL1
  396.     MVI    A,05        ;ENABLE TX
  397.     OUT    MODCTL2
  398. ;
  399.     IN    MODDATP         ;Empty Receive buffer
  400.     IN    MODDATP
  401. ;
  402. INITMOD1:
  403.     MVI    A,5        ;default transfer time to 1200 baud
  404.     STA    MSPEED
  405. ;
  406. INITMOD2:
  407.     MVI    A,08H        ;default to 1200 baud
  408.     OUT    BAUDRP
  409.     RET
  410.      ENDIF            ;not TV802
  411. ;.....
  412. ;
  413. ;
  414. SETUPR:    LXI    D,BAUDBUF    ;point to new input buffer
  415.     CALL    JMP$ILPRT
  416.     DB    'Input Baud Rate (300, 450, 600, 1200, 9600,'
  417.     DB    ' PRINTON, PRINTOFF): ',0
  418. ;
  419.     CALL    JMP$INBUF
  420.     LXI    D,BAUDBUF+2
  421.     CALL    JMP$INLNCOMP    ;compare baudbuf+2 with characters below
  422.     DB    '300',0
  423.     JNC    OK300        ;go if got match
  424.     CALL    JMP$INLNCOMP
  425.     DB    '450',0
  426.     JNC    OK450
  427.     CALL    JMP$INLNCOMP
  428.     DB    '600',0
  429.     JNC    OK600
  430.     CALL    JMP$INLNCOMP
  431.     DB    '1200',0
  432.     JNC    OK1200
  433.     CALL    JMP$INLNCOMP
  434.     DB    '9600',0
  435.     JNC    OK9600
  436.     CALL    JMP$INLNCOMP
  437.     DB    'PRINTON',0
  438.     JNC    PRTRON
  439.     CALL    JMP$INLNCOMP
  440.     DB    'PRINTOFF',0
  441.     JNC    PRTROF
  442.     CALL    JMP$ILPRT    ;all matches failed, tell operator
  443.     DB    '++ Incorrect entry ++',CR,LF,BELL,0
  444.     JMP    SETUPR        ;try again
  445. ;
  446. OK300:    MVI    A,1        ;mspeed 300 baud value
  447.     LHLD    BD300        ;get 300 baud parameters in 'HL'
  448.     JMP    LOADBD        ;go load them
  449. ;
  450. OK450:    MVI    A,2
  451.     LHLD    BD450
  452.     JMP    LOADBD
  453. ;
  454. OK600:    MVI    A,3
  455.     LHLD    BD600
  456.     JMP    LOADBD
  457. ;
  458. OK1200:    MVI    A,5
  459.     LHLD    BD1200
  460.     JMP    LOADBD
  461. ;
  462. OK9600:    MVI    A,8
  463.     LHLD    BD9600
  464. ;
  465. LOADBD:    STA    INITMOD1+1    ;change time-to-send to match baudrate
  466.     MOV    A,L        ;get baudrate byte
  467.     STA    INITMOD2+1    ;store in INITMOD
  468.     JMP    INITMOD1    ;reinitialize to new baudrate, then done
  469. ;
  470. ; Enable printer device.
  471. ;
  472. PRTRON:    MVI    A,0FFH
  473.     STA    LSTTST
  474.     JMP    NPRTMSG
  475. ;
  476. ; Disable printer device.
  477. ;
  478. PRTROF:    MVI    A,000H
  479.     STA    LSTTST
  480.     JMP    NPRTMSG
  481. ;
  482. ; table of baudrate parameters
  483. ;
  484.      IF    TV802
  485. BD300:    DW    0080H        ;38400/300  converted to hex value
  486. BD450:    DW    0055H        ;38400/450  converted to hex value
  487. BD600:    DW    0040H        ;38400/600  converted to hex value
  488. BD1200:    DW    0020H        ;38400/1200 converted to hex value
  489. BD9600:    DW    0004H        ;38400/9600 converted to hex value
  490.      ENDIF            ;TV802
  491. ;
  492.      IF NOT    TV802        ;TV803 or TV803H
  493. BD300:    DW    0020H        ;9600/300  converted to hex value
  494. BD450:    DW    0016H        ;9600/450  converted to hex value
  495. BD600:    DW    0010H        ;9600/600  converted to hex value
  496. BD1200:    DW    0008H        ;9600/1200 converted to hex value
  497. BD9600:    DW    0001H        ;9600/9600 converted to hex value
  498.      ENDIF            ;not TV802
  499. ;
  500. BAUDBUF:DB    10,0
  501.     DS    10
  502. ;
  503. ;           (end of INITMOD and SETUP routines)
  504. ;-----------------------------------------------------------------------
  505. ;
  506. ; These routines can be used for your equipment.  Be sure to end with RET.
  507. ; If using the Hayes Smartmodem, this is unavailable without a special
  508. ; address change.
  509. ;
  510. SPCLMENU:RET
  511. ;
  512. ; NOTE:  Must terminate prior to 0400H
  513. ;
  514. ;
  515. ;-----------------------------------------------------------------------
  516. ;
  517. ; This overwrites the first line of the SNDREADY routine in the body of
  518. ; the main program, in order to check IN$MODCTL2 rather than IN$MODCLT1.
  519. ;
  520.       IF NOT TV802        ;TV803 or TV803H
  521.      ORG    SNDREADY
  522.      CALL    IN$MODCTL2
  523.       ENDIF            ;not TV802
  524. ;
  525. ;-----------------------------------------------------------------------
  526. ;
  527.      END
  528. ;
  529.