home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpm / mex / mexxapii.lbr / APPLCRT3.AQM / APPLCRT3.ASM
Assembly Source File  |  1986-12-08  |  7KB  |  214 lines

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