;-------------------------------------------------------------- ; MXT-AP31.ASM ; REV equ 30 ; ; MEXplus Terminal Overlay for Apple ][+ and //e ; (][+ assumes videoterm card) ;-------------------------------------------------------------- ; Revision History: ;--------+--------+----------+--------------------------------- ;revision| Date | Author | Description ;--------+--------+----------+--------------------------------- ; 3.1 | 7/6/87 | Jim Lill | Renamed using current MXT ; | | | convention. Fixed attributes ; | | | take space problem. ; 3.0 | 6/21/86| Jim Lill | Renamed properly with revision ; | | | control. Extensive attribute ; | | | changes. Added IF control for ; | | | assembly of ][+ and //e versions. ; | | | Added fkeys for PCPI-//e ; | | | Tested thoroughly with PCPI ; | | | 2nd hand report Softcard OK ;--------+--------+----------+--------------------------------- ;APPLETER| 3/86 | jpl | no revision number. Bug in Code ; | | | DO NOT USE ;--------+--------+----------+--------------------------------- ;APLPCPI | 2/86 | jpl | original version derived from ; | | | TVI950.ASM ;-------------------------------------------------------------- ; This file must assemble in 384 bytes or less. ; ; org 01E80H ; false equ 0 true equ not false esc equ 1bh ; ;-------------------------------------------------------------- ;****************************** plus equ false ;set true for ][+, false for //e pcpi equ true ;set true for Applicard ;****************************** ;-------------------------------------------------------------- ; ; ;print title, must be 32 chars ; ;no more, no less if plus db 'Apple ][+ ' ;ten characters endif ; if not plus db 'Apple //e ' ;ten characters endif ; if pcpi db 'and Applicard, v' ;sixteen chars. endif ; if not pcpi db 'and Softcard, v' ;sixteen chars. endif ; db rev/10+'0','.' ;add revision number, two chars. db rev MOD 10+'0' ;add rest of rev, one char db ' ' ;make up the balance for 32 total db 24 ;# rows db 80 ;# cols db 'R' ;Row, column first ("R" or "C") db 'B' ;Variable, binary x,y ("V" or "B") db 31 ;Row offset \ Related to top col # and db 31 ;Col offset / top column #, 13 lines below db 0 ;XY delay (all delays in milliseconds) db 0 ;CLS delay db 0 ;CLREOS delay db 0 ;CLRBOS delay db 0 ;CLREOL delay db 0 ;CLRBOL delay db 0 ;CLREOL delay db 'N' ;Y/N Attributes take screen space db 'Y' ;Y/N Attributes can accumulate db 'Y' ;Lower case ok db 'Y' ;Generates control characters (most do) db 'N' ;ANSI compatible db 1 ;top row # \ Added to r/c offsets above, 'cause db 1 ;top col # / that's how Atlantis database works db 0,0,0 ;rsvd ; ; End of fixed area. The remainder of the record consists ; of variable-length function strings, each terminated in ; a zero. If your terminal doesn't have a particular ; function, its string should be a "DB 0". ; db esc,30,0 ;home cursor db esc,'*',0 ;clear scrn db esc,'=',0 ;xy leadin db 0 ;xy separator db 0 ;xy end sequence db esc,'Y',0 ;clear from cursor to end of screen db 0 ;clear from start of scrn to cursor db esc,'T',0 ;clear from cursor to end of line db 0 ;clear from beginning of line to cursor db 13,esc,'T',0 ;erase line (synthesized from & CEOL) db esc,')',0 ;enter blink mode \ uses reverse video db esc,'(',0 ;exit blink mode / instead db esc,')',0 ;enter reverse video db esc,'(',0 ;exit reverse video db esc,')',0 ;enter underline mode \ uses reverse video db esc,'(',0 ;exit underline mode / instead db 0 ;enter bright-character mode\ don't try to use db 0 ;exit bright / reverse here db 0 ;enter dim-character mode \ seems to have db 0 ;exit dim / no effect db esc,'(',0 ;all attributes off ; ;keyboard stuff.... Used the familiar Wordstar keys ; db 5,0 ;cur up key ctrl-E db 18,0 ;cur dn key ctrl-X db 4,0 ;cur rt key ctrl-D db 13,0 ;cur lt key ctrl-S ; ; more codes ; db 7,0 ;bell ; if plus ;][+ doesn't support insert line db 0 ;insert line endif ; if not plus db esc,'E',0 ;insert line on cursor's line endif ; db esc,'R',0 ;delete cursor's line db esc,'Q',0 ;insert char at cursor position db esc,'W',0 ;delete char at cursor position db 0 ;cursor on (enabled) db 0 ;cursor off (disabled) ; ; The following are sequences generated by the terminal's ; function keys. If your terminal doesn't have function ; keys, these should all be "DB 0" ; if plus db 0 ;fk 1 db 0 ;fk 2 db 0 ;fk 3 db 0 ;fk 4 db 0 ;fk 5 db 0 ;fk 6 db 0 ;fk 7 db 0 ;fk 8 db 0 ;fk 9 db 0 ;fk 10 ; endif ; if (not plus) and pcpi ; ; The //e and Applicard combination offers the nicety of the FUNCTION ; key assignments working with the open and closed Apple keys. If you ; want to be more like a TVI-950, make a file with the numeric keys ; assigned as follows and use one of the "Apple" keys to send the ; string. You still can use the numerics with a MEX.KEY file for ; something else, accessed by ESC n ; db 1,'@',13,0 ;fk 1 db 1,'A',13,0 ;fk 2 db 1,'B',13,0 ;fk 3 db 1,'C',13,0 ;fk 4 db 1,'D',13,0 ;fk 5 db 1,'E',13,0 ;fk 6 db 1,'F',13,0 ;fk 7 db 1,'G',13,0 ;fk 8 db 1,'H',13,0 ;fk 9 db 1,'I',13,0 ;fk 10 endif ; ; Graphics characters (line drawing). If your terminal supports ; a graphic character mode, fill in the first two sequences; each ; time MEX prints a graphics character, it prints the enter-mode ; string, followed by the particular graphics character's string, ; followed by exit-graphics. Some terminals do not have a graph- ; ics or line-drawing mode, but instead use a sequence to print a ; particular graphics character. If that's the case with your ; terminal, define the enter and exit strings as "DB 0". ; db 0 ;enter graphics mode db 0 ;exit graphics mode ; ; These are the characters supported by MEX. If your terminal ; doesn't support line-drawing characters, change each of these ; to a "DB 0". ; db 0 ;vertical bar db 0 ;horizontal bar db 0 ;upper left corner character db 0 ;upper right corner db 0 ;lower left corner db 0 ;lower right corner db 0 ;crossed lines db 0 ;vbar with right hand extension db 0 ;vbar with left extension db 0 ;hbar with upper extension db 0 ;hbar with lower extension db 0 ;small dot db 0 ;solid white block db 0 ;checkerboard ; db 0 ;terminal init string db 0 ;terminal de-init string ; end