home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpm / mex / mxt-ap31.azm / MXT-AP31.ASM
Assembly Source File  |  1987-07-07  |  7KB  |  217 lines

  1. ;--------------------------------------------------------------
  2. ; MXT-AP31.ASM
  3. ;
  4. REV    equ    30
  5. ;
  6. ; MEXplus Terminal Overlay for Apple ][+ and //e
  7. ;             (][+ assumes videoterm card)
  8. ;--------------------------------------------------------------
  9. ; Revision History:
  10. ;--------+--------+----------+---------------------------------
  11. ;revision|  Date  |  Author  |          Description
  12. ;--------+--------+----------+---------------------------------
  13. ;  3.1   | 7/6/87 | Jim Lill | Renamed using current MXT 
  14. ;        |      |         | convention. Fixed attributes 
  15. ;     |      |         | take space problem.
  16. ;  3.0     | 6/21/86| Jim Lill | Renamed properly with revision
  17. ;     |      |         | control. Extensive attribute
  18. ;     |      |         | changes. Added IF control for
  19. ;     |      |         | assembly of ][+ and //e versions.
  20. ;     |      |         | Added fkeys for PCPI-//e
  21. ;     |      |         | Tested thoroughly with PCPI
  22. ;     |      |         | 2nd hand report Softcard OK
  23. ;--------+--------+----------+---------------------------------
  24. ;APPLETER|  3/86  | jpl      | no revision number. Bug in Code
  25. ;     |      |         | DO NOT USE
  26. ;--------+--------+----------+---------------------------------
  27. ;APLPCPI |  2/86  | jpl      | original version derived from
  28. ;     |      |         | TVI950.ASM
  29. ;--------------------------------------------------------------
  30. ; This file must assemble in 384 bytes or less.
  31. ;
  32. ;
  33.     org    01E80H
  34. ;
  35. false    equ    0
  36. true    equ    not false
  37. esc    equ    1bh
  38. ;
  39. ;--------------------------------------------------------------
  40.                 ;******************************
  41. plus    equ    false        ;set true for ][+, false for //e
  42. pcpi    equ    true        ;set true for Applicard
  43.                 ;******************************
  44. ;--------------------------------------------------------------
  45. ;
  46. ;                ;print title, must be 32 chars
  47. ;                ;no more, no less
  48. if plus
  49.     db    'Apple ][+ '    ;ten characters
  50. endif
  51. ;
  52. if not plus
  53.     db    'Apple //e '    ;ten characters
  54. endif
  55. ;
  56. if pcpi
  57.     db    'and Applicard, v'    ;sixteen chars.
  58. endif
  59. ;
  60. if not pcpi
  61.     db    'and Softcard,  v'    ;sixteen chars.
  62. endif
  63. ;
  64.     db    rev/10+'0','.'    ;add revision number, two chars.
  65.     db    rev MOD    10+'0'    ;add rest of rev, one char
  66.     db    '   '        ;make up the balance for 32 total
  67.     db    24        ;# rows
  68.     db    80        ;# cols
  69.     db    'R'        ;Row, column first ("R" or "C")
  70.     db    'B'        ;Variable, binary x,y ("V" or "B")
  71.     db    31        ;Row offset \ Related to top col # and
  72.     db    31        ;Col offset / top column #, 13 lines below
  73.     db    0         ;XY delay     (all delays in milliseconds)
  74.     db    0        ;CLS delay
  75.     db    0        ;CLREOS delay
  76.     db    0        ;CLRBOS delay
  77.     db    0        ;CLREOL delay
  78.     db    0        ;CLRBOL delay
  79.     db    0        ;CLREOL delay
  80.     db    'N'        ;Y/N Attributes take screen space
  81.     db    'Y'        ;Y/N Attributes can accumulate
  82.     db    'Y'        ;Lower case ok
  83.     db    'Y'        ;Generates control characters (most do)
  84.     db    'N'        ;ANSI compatible
  85.     db    1        ;top row # \ Added to r/c offsets above, 'cause
  86.     db    1        ;top col # / that's how Atlantis database works
  87.     db    0,0,0        ;rsvd
  88. ;
  89. ; End of fixed area.  The remainder of the record consists
  90. ; of variable-length function strings, each terminated in
  91. ; a zero.  If your terminal doesn't have a particular
  92. ; function, its string should be a "DB 0".
  93. ;
  94.     db    esc,30,0    ;home cursor
  95.     db    esc,'*',0    ;clear scrn
  96.     db    esc,'=',0    ;xy leadin
  97.     db    0        ;xy separator
  98.     db    0        ;xy end sequence
  99.     db    esc,'Y',0    ;clear from cursor to end of screen
  100.     db    0        ;clear from start of scrn to cursor
  101.     db    esc,'T',0    ;clear from cursor to end of line
  102.     db    0        ;clear from beginning of line to cursor
  103.     db    13,esc,'T',0    ;erase line  (synthesized from <cr> & CEOL)
  104.     db    esc,')',0    ;enter blink mode  \ uses reverse video
  105.     db    esc,'(',0    ;exit blink mode   / instead
  106.     db    esc,')',0    ;enter reverse video
  107.     db    esc,'(',0    ;exit reverse video
  108.     db    esc,')',0    ;enter underline mode \ uses reverse video
  109.     db    esc,'(',0    ;exit underline mode  / instead
  110.     db    0        ;enter bright-character mode\ don't try to use
  111.     db    0        ;exit bright            / reverse here
  112.     db    0        ;enter dim-character mode   \ seems to have
  113.     db    0        ;exit dim            / no effect
  114.     db    esc,'(',0    ;all attributes off
  115. ;
  116. ;keyboard stuff.... Used the familiar Wordstar keys
  117. ;
  118.     db    5,0        ;cur up key    ctrl-E
  119.     db    18,0        ;cur dn key    ctrl-X
  120.     db    4,0        ;cur rt key    ctrl-D
  121.     db    13,0        ;cur lt key    ctrl-S
  122. ;
  123. ; more codes
  124. ;
  125.     db    7,0        ;bell
  126. ;
  127. if plus                ;][+ doesn't support insert line
  128.     db    0        ;insert line
  129. endif
  130. ;
  131. if not plus
  132.     db    esc,'E',0    ;insert line on cursor's line
  133. endif
  134. ;
  135.     db    esc,'R',0    ;delete cursor's line
  136.     db    esc,'Q',0    ;insert char at cursor position
  137.     db    esc,'W',0    ;delete char at cursor position
  138.     db    0        ;cursor on (enabled)
  139.     db    0        ;cursor off (disabled)
  140. ;
  141. ; The following are sequences generated by the terminal's
  142. ; function keys.  If your terminal doesn't have function
  143. ; keys, these should all be "DB 0"
  144. ;
  145. if plus
  146.  
  147.     db    0        ;fk 1
  148.     db    0        ;fk 2
  149.     db    0        ;fk 3
  150.     db    0        ;fk 4
  151.     db    0        ;fk 5
  152.     db    0        ;fk 6
  153.     db    0        ;fk 7
  154.     db    0        ;fk 8
  155.     db    0        ;fk 9
  156.     db    0        ;fk 10
  157. ;
  158. endif
  159. ;
  160. if (not    plus) and pcpi
  161. ;
  162. ; The //e and Applicard combination offers the nicety of the FUNCTION
  163. ; key assignments working with the open and closed Apple keys. If you
  164. ; want to be more like a TVI-950, make a file with the numeric keys
  165. ; assigned as follows and use one of the "Apple" keys to send the
  166. ; string.  You still can use the numerics with a MEX.KEY file for
  167. ; something else, accessed by ESC n
  168. ;
  169.     db    1,'@',13,0        ;fk 1
  170.     db    1,'A',13,0        ;fk 2
  171.     db    1,'B',13,0        ;fk 3
  172.     db    1,'C',13,0        ;fk 4
  173.     db    1,'D',13,0        ;fk 5
  174.     db    1,'E',13,0        ;fk 6
  175.     db    1,'F',13,0        ;fk 7
  176.     db    1,'G',13,0        ;fk 8
  177.     db    1,'H',13,0        ;fk 9
  178.     db    1,'I',13,0        ;fk 10
  179.  
  180. endif
  181. ;
  182. ; Graphics characters (line drawing).  If your terminal supports
  183. ; a graphic character mode, fill in the first two sequences; each
  184. ; time MEX prints a graphics character, it prints the enter-mode
  185. ; string, followed by the particular graphics character's string,
  186. ; followed by exit-graphics.  Some terminals do not have a graph-
  187. ; ics or line-drawing mode, but instead use a sequence to print a
  188. ; particular graphics character.  If that's the case with your
  189. ; terminal, define the enter and exit strings as "DB 0".
  190. ;
  191.     db    0        ;enter graphics mode
  192.     db    0        ;exit graphics mode
  193. ;
  194. ; These are the characters supported by MEX.  If your terminal
  195. ; doesn't support line-drawing characters, change each of these
  196. ; to a "DB 0".
  197. ;
  198.     db    0        ;vertical bar
  199.     db    0        ;horizontal bar
  200.     db    0        ;upper left corner character
  201.     db    0        ;upper right corner
  202.     db    0        ;lower left corner
  203.     db    0        ;lower right corner
  204.     db    0        ;crossed lines
  205.     db    0        ;vbar with right hand extension
  206.     db    0        ;vbar with left extension
  207.     db    0        ;hbar with upper extension
  208.     db    0        ;hbar with lower extension
  209.     db    0        ;small dot
  210.     db    0        ;solid white block
  211.     db    0        ;checkerboard
  212. ;
  213.     db    0        ;terminal init string
  214.     db    0        ;terminal de-init string
  215. ;
  216.     end
  217.