home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / ccdos / cczibm.dat < prev   
Text File  |  2020-01-01  |  24KB  |  458 lines

  1.         public  anstty, ansini, ansrei, ansdsl, anstat, anskbi ; Entry points
  2.         public  ans52t, vclick, vsinit
  3.         public  mar_top, mar_bot, anspflg, scroll       ; data for msyibm
  4.         include ccsdef.h
  5.  
  6.  
  7. ; * Disclaimer *
  8. ;
  9. ; DEC and VT are trademarks of Digital Equipment Corporation.
  10. ;
  11. ; There is a naming convention
  12. ; for the ANSI and VT100 functions and flags; generally, the stuff in the
  13. ; symbol after "ans" or "at" is the function or mode mnemonic used in the
  14. ; VT100 manual.
  15. ;
  16. ; Every effort has been made to make the VT100 emulation as much like the
  17. ; real thing as possible.   The reference used was the VT100 User's Guide, 2nd
  18. ; ed. Jan. 1979, DEC part no. EK-VT100-UG.    Some aspects of the behavior
  19. ; of the terminal (e.g., the interaction of the "origin mode", limited
  20. ; scrolling region, and indexing), were gleaned from programming experiments
  21. ; on an actual VT100 terminal.  Implemented features include: (1) Limited
  22. ; scolling region, (2) Settable tab stops, (3) Special "graphics" character
  23. ; set and UK ASII set, (4) All graphic renditions (underline, blink, and
  24. ; high intensity), (5) Simulated "LEDs" on the mode line, (6) Screen mode
  25. ; (normal or reverse video), (7) All terminal reports (status, active position,
  26. ; terminal parameters, and device attributes), (8) The ANSI new-line mode and
  27. ; several of the DEC private modes, including keypad application, cursor key,
  28. ; screen, auto-wrap, and origin, (9) cursor position/graphic rendition/
  29. ; character set save/restore, and last (and probably least): (10) VT52 com-
  30. ; patibility mode.    Also, various details of behavior required by the ANSI
  31. ; standard (e.g. most control characters do not affect the interpretation of
  32. ; the current escape sequence, relative cursor positioning (up, down, left
  33. ; right, and of course tab) stop at the screen margins, etc.) have been
  34. ; scrupulously observed.
  35. ;
  36. ; This was the first thing I ever wrote in 8088 assembler (some of it was
  37. ; stolen from CCYIBM), and one of the constraints was that the emulator
  38. ; should work with a vanilla PC with a monochrome monitor. Given these and
  39. ; other constraints, no attempt was made to implement the following VT100
  40. ; features: (1) Smooth scolling, (2) 132 column lines, (3) Auto repeat,
  41. ; (5) Interlace/no interlace, (6) Double-width/double-height lines. The
  42. ; escape sequences to set and reset these are recognized, but ignored.
  43. ;
  44. ;       - James A. Harvey, IUPUI Computing Services, DEC Systems Group
  45. ;
  46. ; * End of Disclamer *
  47. ; ---------------------------------------------------------------------------
  48. ;
  49. ; Description of the global entry points and calls on external routines
  50. ; needed by this emulator.                                      [jrd]
  51. ;
  52. ; vsinit - start up routine called as Kermit initializes. Takes no arguments.
  53. ;          Sets up address pointers to tabs, reads default terminal parameters
  54. ;          reads current screen coloring. Examines and updates structure
  55. ;          "vtemu." which is how mssset communicates changed information
  56. ;          about many Set Term parameters; "flags." is a Kermit structure
  57. ;          carrying the other Set Term parameters.
  58. ; anstty - starting point for displaying a character, delivered in AL.
  59. ;          Returns when the display operation is completed and that may
  60. ;          take many many instructions. All normal "characters received by
  61. ;          the terminal" are provided by calling anstty with the char in AL.
  62. ; ansini - entry point to initialize the emulator. It requires information
  63. ;          from msy in four registers: the Kermit terminal routine flags
  64. ;          "yflags" (used mainly to sense debug mode and the mode line toggle)
  65. ;          "low_rgt" (bh = row, bl = column of the lower right display corner)
  66. ;          "lbaudtab" (index into baud rate table, for status reporting)
  67. ;          "lpartab" (index into parity table, for status reporting)
  68. ;          Ansini causes a full reset of the emulator, including screen
  69. ;          clearing and a beep. Ansini is also called by msy in response to
  70. ;          sensing the Alt = key combination to fully reset the emulator.
  71. ; ansrei - entry point to reinitialize the emulator. Nearly the same as
  72. ;          ansini except operating flags, tabs, etc are retained from the
  73. ;          previous emulator session. Items which can be changed by Set Term
  74. ;          are examined and updated. The msy flags "yflags" are needed.
  75. ;          This is the warm-restart entry point used when connect mode
  76. ;          is reentered gracefully. The screen is cleared only if the coloring
  77. ;          has changed. The starting cursor location is whereever msy puts it.
  78. ; ansdsl - display "led" (status line) information. Invoked by msy when
  79. ;          the mode line is constructed so the emulator can write the
  80. ;          terminal type and the VT100 led status lights when Connect mode
  81. ;          is started. Requires "yflags" from msy to sense whether the mode
  82. ;          line is to be shown.
  83. ; anstat - reports our working flags and screen coloring to msy. Nearly
  84. ;          obselete but not quite. Reads msy "yflags" and reports "mlbattr"
  85. ;          the video attributes used on the mode line, "scbattr" the video
  86. ;          attributes of an empty character cell (background), "curattr"
  87. ;          the video attributes of displayable characters, and "ansflgs"
  88. ;          the emulator's working flags (needed for keyboard translations
  89. ;          done in msy).
  90. ; anskbi - a routine called by msy to notify the emulator that a character
  91. ;          is available from the keyboard. No character is read, just flag
  92. ;          ttkbi is set. This is actually used only to beep when the cursor
  93. ;          goes beyond column 72 and the margin bell flag is on.
  94. ; ans52t - called by msy to change terminal types "on the fly" without
  95. ;          fully updating all operating parameters and without losing setup
  96. ;          information. Msy senses the Alt minus key and calls ans52t with
  97. ;          no arguments. Ans52t cycles among VT102, VT52 and Heath-19 modes.
  98. ; vclick - called by msy to cause a click sound. Simulates keyboard clicks,
  99. ;          sort of anyway. No arguments.
  100. ; other modules in msy are called by this file to handle screen scrolling
  101. ;          mode line on/off, output to the serial port (reports), screen
  102. ;          particulars (location, cursor shape, blanking). The list is
  103. ;          the set of code extrn procedures below; all are in file msy.
  104. ;
  105. ; data exchange is directly with msy to assist in scrolling (varaibles
  106. ;          "mar_top", "mar_bot") and in sensing the non-connect
  107. ;          mode screen coloring ("scbattr"). Screen coloring controlled by
  108. ;          the emulator is not permitted to influence the non-connect mode
  109. ;          screens whereas the emulator attempts to use the regular Kermit
  110. ;          screen colors as defaults. The kind of terminal to emulate is
  111. ;          held in byte "flags.vtflg" which is set by Set Term and by this
  112. ;          module for global information within Kermit.
  113. ;
  114. ; The emulator assumes the screen is laid out in the manner of a conventional
  115. ;          IBM monochrome or color graphics adapter running in 80 column TEXT
  116. ;          modes. That layout is one word per displayable location starting at
  117. ;          the upper left corner (0,0) and running contiguously to the lower
  118. ;          right corner (24,79). Each word holds the displayable character in
  119. ;          the low order byte and the display attributes in the high order
  120. ;          byte. Attributes are, from high to low bits: blinking on, back-
  121. ;          ground red, green, and blue on, high intensity, foreground red,
  122. ;          green, and blue on. Normal white chars on a black field is 07H.
  123. ;          The starting segment of screen memory is given by msy module
  124. ;          "scrseg" to be TopView/MS Windows compatible. Msy module "scrsync"
  125. ;          is used to inform these windowing environments of memory updates.
  126. ;          Variable "crt_mode" is set by msy to indicate which IBM display
  127. ;          mode is active; only the monochrome and CGA modes are recognized.
  128. ;          Direct reading and writing of display memory is done, compatibly
  129. ;          with TopView/Windows, to attain speed over Bios and DOS calls
  130. ;          when editing of previously entered text is needed. However, IBM
  131. ;          Bios interrupt 10H is used where possible for normal cursor
  132. ;          movement/sensing and writing of new characters. See the IBM PC
  133. ;          hardware Technical Reference Manuals for further details.
  134. ;
  135. ; Many things have been added, or modified since James Harvey donated this
  136. ;          code to Columbia University for use in Kermit.              [jrd]
  137. ; ---------------------------------------------------------------------------
  138.  
  139. screen  equ     10h                     ; Bios screen call
  140. swidth  equ     132                     ; assumed max screen width [dlk]
  141. slen    equ     60                      ; assumed max screen length [jrd]
  142.  
  143. att_low_mask    equ     06H             ; Various attribute-related equates
  144. ;;;att_reverse  equ     70H             ; these two are now storable items
  145. ;;;att_normal   equ     07H             ; to allow external settings. [jrd]
  146. att_underline   equ     01H
  147. att_intensity   equ     08H
  148. att_blink       equ     80H
  149.  
  150. ; VT100 status flags ansflg
  151.  
  152. ;anslnm  equ     01H                     ; ANSI line feed/new line mode
  153. ;decckm  equ     02H                     ; VT100 cursor keys mode
  154. ;deckpam equ     04H                     ; VT100 keypad application mode
  155. ;decscnm equ     08H                     ; VT100 screen mode (n.y.i.)
  156. ;decom   equ     10H                     ; VT100 origin mode
  157. ;decawm  equ     20H                     ; VT100 autowrap mode
  158. ;decanm  equ     40H                     ; ANSI(VT100)/VT52 mode
  159. ;dececho equ     80H                     ; ANSI local echo on (1)
  160.  
  161. ;;;;;;;;;;;;;;;; items for reference from mssdef.h ;;;;;;;;;;;;;
  162.  
  163. ; VT100 SETUP mode flags
  164. ;vswdir          equ     80H             ; Writing direction (0=left to right)
  165. ;vsscreen        equ     40H             ; Screen mode (0 = normal video)
  166. ;vscursor        equ     20H             ; Cursor (0 = block)
  167. ;vsmarginbell    equ     10H             ; Margin bell (0 = off)
  168. ;vskeyclick      equ     08H             ; Keyclick (0 = off)
  169. ;vsshift3        equ     04H             ; Shift-3 (0 = American pound sign)
  170. ;vswrap          equ     02H             ; Line wrap around (0 = no wrap)
  171. ;vsnewline       equ     01H             ; ANSI new line (0 = off)
  172.  
  173. ;vsdefaults      equ     0+vscursor
  174.  
  175. ;[IU1] Definitions for terminal emulation
  176. ;TTGENRC EQU    0               ; Type 0 - TTY (no special emulation)
  177. ;TTHEATH EQU    1               ; Type 1 - HEATH 19
  178. ;TTVT52 EQU     2               ; Type 2 - VT52
  179. ;TTVT100 EQU    3               ; Type 3 - ANSI (VT100 subset)
  180. ;TTTEK  EQU     4               ; Type 4: Tektronix 4010
  181. ;TTTYPES equ    5               ; Number of terminal types defined
  182.  
  183. ;emulst struc           ; structure of vtemu.xxx for VT100 emulator
  184. ;vtflgst db     0       ; VT100 setup flags (from SET)
  185. ;vtflgop db     0       ; VT100 runtime flags, like setup flags (here & STAT)
  186. ;vttbs  dw      0       ; pointer to default tab stops, for SET
  187. ;vttbst dw      0       ; pointer to active tab stops, for STATUS
  188. ;vtchset db     1       ; value of default character set (1=US-ascii)
  189. ;att_ptr dw     0       ; pointer to normal & reverse video attributes
  190. ;emulst ends
  191. ;;;;;;;;;;;;;;;;  end references ;;;;;;;;;;;;;;;;;;;;
  192.  
  193. datas   segment public 'datas'
  194.         extrn vtemu:byte, crt_mode:byte, scbattr:byte, flags:byte
  195.         extrn crt_lins:byte, crt_cols:byte, rxtable:byte, denyflg:word
  196.         extrn tekflg:byte
  197.         extrn   isccdos:byte    ; Jun 25,1990
  198.  
  199. ; Early versions of MASM have a bug that causes it to consider the
  200. ; expression (offset foo) as non-relocatable if used in an arithmetic
  201. ; operation (for example, "sub di,offset foo"), and if foo is defined
  202. ; within the first 256 bytes of the data segment.
  203.  
  204.  
  205. ; ANSI special character table - 32 entries indexed by control char value
  206.  
  207. ansspc  dw      5 dup (atign)           ; ignore NUL,SOH,STX,ETX,EOT
  208.         dw      atign                   ; ENQ - answerback message
  209.         dw      atign                   ; ACK - ignore
  210.         dw      atbel                   ; BEL - ring terminal bell
  211.         dw      atbs                    ; BS - ANSI backspace
  212.         dw      atht                    ; HT - ANSI tab
  213.         dw      atlf                    ; LF - ANSI line feed
  214.         dw      atlf                    ; VT - Interpreted as ANSI LF
  215.         dw      atff                    ; FF - do as LF (but ESC FF does Tek)
  216.         dw      atcr                    ; CR - ANSI carriage-return
  217.         dw      atso                    ; SO - Select char set G1
  218.         dw      atsi                    ; SI - Select char set G0
  219.         dw      8 DUP (atign)   ; ignore DLE,DC1,DC2,DC3,DE4,NAK,SYN,ETB
  220.         dw      atcan                   ; CAN - cancel ANSI sequence
  221.         dw      atign                   ; EM - ignore
  222.         dw      atcan                   ; SUB - treat as CAN
  223.         dw      atesc                   ; ESC - ANSI CSI
  224.         dw      4 DUP (atign)           ; ignore FS,GS,RS,US
  225.  
  226. ; Heath-19 mode escape follower table
  227.  
  228. h19esc  db      'YABCD', 'KIHJF', 'G=><Z', 'ELM'
  229.         db      'NO@p', 'qvwjk', 'xynz', 'blor'
  230. lh19esc equ     $-h19esc
  231.  
  232. ; Dispatch table for Heath-19 escape sequence table h19esc.
  233. ; Two byte sequences of the form ESC char, where char is not in the
  234. ; table above, are completely ignored.
  235.  
  236. h19ejt  dw      v52pos,atcuu,h19cud,h19cuf,atbs         ; 'YABCD'
  237.         dw      atel,atri,atcup,ated,v52egm             ; 'KIHJF'
  238.         dw      v52xgm,atkpam,atkpnm,h19ans,decid       ; 'G=><Z'
  239.         dw      h19clrs,inslin,dellin                   ; 'ELM'
  240.         dw      atdelc,noins,entins,h19herv             ; 'NO@p'
  241.         dw      h19hxrv,h19wrap,h19nowrp,atsc,atrc      ; 'qvwjk'
  242.         dw      h19smod,h19cmod,hrcup,atreset           ; 'xynz'
  243.         dw      h19erb,h19erl,h19ero,h19mbr             ; 'blor'
  244.  
  245. ; Heath-19 special graphics characters. Use as offsets from caret (94D)
  246.  
  247. hgrtab  db      249,17,179,196,197      ; caret,underscore,accent grave,a,b
  248.         db      191,217,192,218,241     ; c,d,e,f,g
  249.         db      26,219,246,25,220       ; h,i,j,k,l
  250.         db      220,223,223,223,222     ; m,n,o,p,q
  251.         db      16,203,185,202,204      ; r,s,t,u,v
  252.         db      'X','/','\','-','-'     ; w,x,y,z,{
  253.         db      221,222,20              ; |,},~
  254.  
  255. ; VT52 compatibility mode escape follower table
  256.  
  257. v52esc  db      'Y','A','B','C','D'
  258.         db      'K','I','H','J','F'
  259.         db      'G','=','>','<','Z'
  260.         db      '7','8','c','^','_'
  261.         db      'W','X',']','V'
  262. lv52esc equ     $-v52esc                ; length of table
  263.  
  264. ; Dispatch for v52esc table
  265.  
  266. v52ejt  dw      v52pos,atcuu,atcud,atcuf,atcub
  267.         dw      atel,atri,atcup,ated,v52egm
  268.         dw      v52xgm,atkpam,atkpnm,v52ans,decid
  269.         dw      atsc,atrc,v52ris,v52apb,v52ape
  270.         dw      v52pcb,v52pce,v52ps,v52pl
  271.  
  272. ; ANSI escape special character table
  273.  
  274. ansesc  db      '[','D','E','M','H'
  275.         db      '7','8','=','>','c'
  276.         db      '(',')','#','Z','<'
  277.         db      'P','*','+',7bh         ; 7bh is left curly brace
  278. lansesc equ     $-ansesc                ; length of table
  279.  
  280. ; Dispatch for ansesc table
  281.  
  282. ansejt  dw      atcsi,atind,atnel,atri,athts
  283.         dw      atsc,atrc,atkpam,atkpnm,atris
  284.         dw      atsg0,atsg1,atsdhl,at52id,atnorm
  285.         dw      atpriv,atpriv,atpriv,atnorm
  286.  
  287.  
  288. ; Final char table for ANSI escape sequences (ESC [ Pn ; ... Pm ch)
  289.  
  290. anstab  db      'H','A','B','C','D'
  291.         db      'K','J','m','g','r'
  292.         db      'c','q','x','n','f'
  293.         db      'l','h','y','P','L'
  294.         db      'M','i','s','u','z'
  295.         db      '@'
  296. lanstab equ     $-anstab                ; Define table length
  297.  
  298. ; Dispatch for anstab table
  299.  
  300. ansjmp  dw      atcup,atcuu,atcud,atcuf,atcub
  301.         dw      atel,ated,atsgr,attbc,atstbm
  302.         dw      atda,atll,atreqt,atdsr,atcup
  303.         dw      atrm,atsm,atctst,atdelc,inslin
  304.         dw      dellin,ansprt,htsc,htrc,htrest
  305.         dw      ansich
  306.  
  307. ; "Special graphics" set translation table for characters 137 (octal)
  308. ; through 176 when the special graphics set is selected.  Some characters
  309. ; (142, 143, 144, 145, 150, 151, 157, 160, 162, 163, and 174) do not
  310. ; have exact equivalents in the available set on the IBM, so a (some-
  311. ; times reasonably close) substitution is made.  Table is indexed by
  312. ; ASCII char value minus 137 octal for chars 137-176 octal.
  313.  
  314. sgrtab  db      032,004,177,026,023
  315.         db      027,025,248,241,021
  316.         db      018,217,191,218,192
  317.         db      197,196,196,196,196
  318.         db      196,195,180,193,194
  319.         db      179,243,242,227,157
  320.         db      156,250
  321.  
  322. ; Device attributes response string. (Note: If "with AVO" causes problems,
  323. ; change the last parameter from "2" to "0". The default is to indicate
  324. ; the AVO option is present because the emulator can set all of the graphic
  325. ; rendition attributes (bold, blink, etc.) independently). A VT100 reports
  326. ; as ESC [ ? 1 ; 2 c  but a VT102 uses ESC [ ? 6 ; 2 c.
  327.  
  328. ;;;dastr        db      escape,'[?6;2c',0               ; VT102
  329. dastr   db      escape,'[?6c',0         ; shortened to help some mainframes
  330.         db      5 dup (0)               ; patch space
  331.  
  332. ; Identify response used while in VT52 compatibility mode
  333. v52str  db      escape,'/Z',0
  334.         db      5 dup (0)               ; patch space
  335.  
  336. ; Identify response when a Heath-19 terminal
  337. h19str  db      escape,'/K',0
  338.         db      5 dup (0)               ; patch space
  339.  
  340. ; ANSI Escape sequence to turn off Media Copy (Print Controller Off)
  341.  
  342. mcoffs  db      24 dup (0)              ; received chars in sequence
  343. mccnt   dw      0                       ; counter of matched char in mcoff
  344.  
  345. ; Parity code translation table
  346.  
  347. partab  db      5                       ; Even
  348.         db      3                       ; Mark
  349.         db      1                       ; None
  350.         db      4                       ; Odd
  351.         db      2                       ; Space
  352. lpartab equ     $-partab
  353.  
  354. ; Baud rate code translation table
  355.  
  356. baudtab db      0                       ; 45.5 - no VT100 code (call it 50)
  357.         db      0                       ; 50
  358.         db      8                       ; 75
  359.         db      16                      ; 110
  360.         db      24                      ; 134.5
  361.         db      32                      ; 150
  362.         db      48                      ; 300
  363.         db      56                      ; 600
  364.         db      64                      ; 1200
  365.         db      72                      ; 1800
  366.         db      80                      ; 2000
  367.         db      88                      ; 2400
  368.         db      104                     ; 4800
  369.         db      112                     ; 9600
  370.         db      120                     ; 19200
  371.         db      128                     ; 38400  extended beyond DEC
  372. lbaudtab        equ     $-baudtab
  373.  
  374. belcol  db      ?                       ; column at which to ring margin bell
  375. yflags  db      ?                       ; Flags from CCYxxx term routine
  376. oldbatr db      ?                       ; old scbattr
  377. oldterm db      ?                       ; terminal type from previous entry
  378. escdec  db      0                       ; DEC private sequence (ESC [ ?) seen
  379. decmode equ     80H                     ; "?" seen in lead-in
  380. baudidx db      ?                       ; Index into baud rate table
  381. parcode db      ?                       ; Parity code (0-4)
  382. datbits db      ?                       ; Number of databits (7 or 8)
  383. savflgs db      ?                       ; Saved flags for atsc/atrc
  384. modeset db      ?                       ; Temp for atsm/atrm
  385. h19mod  db      ?                       ; flag for atsm/atrm
  386. h19l25  db      ?                       ; Heath-19 25th line enabled flag
  387. insmod  db      ?                       ; Insert mode on (1) or off (0)
  388. kbicsr  dw      ?                       ; Cursor when keyboard input typed
  389. kbiflg  db      ?                       ; Set/reset for keyboard input
  390. ttstate dw      offset atnrm            ; terminal automata state
  391.  
  392.                                         ; Start of stuff to save for ESC 7 fxn
  393. ukset   equ     0                       ; Set 1 = UK ASCII set
  394. ascset  equ     1                       ; Set 2 = US ASCII set
  395. sgrset  equ     2                       ; Set 3 = "Special graphics set"
  396. alcset  equ     3                       ; Set 4 = "Alt. Character Set" [bk]
  397. svattr_index    equ 0                   ; To set saved cursor attribute only
  398.  
  399. curattr db      07h                     ; Cursor attribute
  400. cursor  dw      0                       ; Cursor position
  401. video_state db  0                       ; video state (0=normal,1=reversed)
  402. chr_set dw      offset chr_sg0          ; Ptr. to currently selected char set
  403. chr_sg0 db      ascset                  ; Current SG0 set
  404. chr_sg1 db      ascset                  ; Current SG1 set
  405. lsavecu equ     $-curattr               ; Length of stuff to save
  406.  
  407. savecu  db      lsavecu dup (?)         ; Saved cursor, attr., charset, etc
  408. h19ctyp db      1                       ; H-19 cursor type (1=ul, 2=bk, 4=off)
  409.  
  410. att_normal      db      07H             ; retain order: normal then reverse
  411. att_reverse     db      70H
  412.  
  413. mlbattr db      ?                       ; Mode line background attribute
  414.  
  415. ansflgs db      0                       ; ANSI/VT100 mode flags
  416. ; (flags are defined in mssdefs.h)
  417.  
  418. vtflags db      0                       ; VT100 SETUP flags
  419. ; (SETUP flags are defined in mssdefs.h)
  420. tmpflags        db      0               ; (Temporary for asnrei/stblmds)
  421.  
  422. ; (tab stops are stored here)
  423. tabs    db      swidth dup (?)          ; active tab stops
  424. deftabs db      swidth dup (?)          ; default tab stops
  425. vttabs  dw      0                       ; Pointer to default VT100 tab stops
  426.  
  427. ; byte per line, type of line: 0=normal, 1=double wide, 2=double high
  428. linetype db     slen dup (0)
  429.  
  430. linelen db      79                      ; active screen line length (79, 131)
  431. low_rgt dw      0                       ; text screen dimensions
  432.                                         ; byte low_rgt = max columns (79)
  433.                                         ; byte low_rgt+1 = max rows (23)
  434. oldscrn dw      0                       ; old screen. hi=rows-1, low=cols-1
  435. ttkbi   db      0                       ; Flag for keyboard input seen
  436.  
  437. ; Scrolling region - do not separate or change order of mar_top & mar_bot
  438. mar_top db      ?                       ; Scrolling region top margin
  439. mar_bot db      ?                       ; Scrolling region bottom margin
  440. scroll  db      1                       ; lines to scroll
  441.  
  442. led_col equ     65                      ; column position for "LEDs" display
  443. led_off equ     '.'                     ; "Off" LED
  444. ansleds db      'VT102 ....'            ; "LEDs".Terminal ident (10 bytes)
  445. v52leds db      '   VT52   '            ; This is used in VT52 mode
  446. h19leds db      ' Heath-19 '            ; For Heath-19 mode
  447. nansarg db      0                       ; Index for ANSI argument list
  448. ansargs db      16 dup (0)              ; Room for 16 ANSI arguments
  449. lansarg equ     $-ansargs               ; Max number of ANSI arguments
  450.                                         ; printer support data
  451. anspflg db      0                       ; printer flag bits and definitions
  452. vtautop equ     1                       ; autoprint enabled (1)
  453. vtcntp  equ     2                       ; controller print enabled (1)
  454. vtextp  equ     4                       ; printer extent set (1)
  455. vtffp   equ     8                       ; form feed wanted at end of print (1)
  456. datas   ends
  457.  
  458.