home *** CD-ROM | disk | FTP | other *** search
- ;**********************************************************************
- ;
- ; SUPER - FAST - WS
- ;
- ; WS33MOD4.ASM -- VERSION 3.3 For Epson RX-80 or MX-80F/T
- ; BY RAYMOND E DIXON JACKSONVILLE, FL (904)- 778-4048
- ; TO MEMORY MAP MODEL 4/4P TRS-80 M-M CPM 2.31 - 2.22
- ;
- ; This program will modify all 12 Arrow keys plus clear and break keys
- ; to match WS and return them back to cpm when you exit WS leaveing the
- ; shifted keys as WS keys.
- ;
- ; FOR WS 3.0 USE WS30MOD4.ASM
- ; Assemble with asm.com and overlay with Mload.com
- ; This program is free to anyone who wishes to use it, all I ask is
- ; to leave my header in the file. Thanks !
- ;**********************************************************************
- TRUE EQU 1
- FALSE EQU NOT TRUE
- ;
- ; ASCII control code equates - to be used in defining patches.
- ;
- SOH EQU 01H ;Start of Heading ;CONTROL A
- STX EQU 02H ;Start of Text ;CONTROL B
- ETX EQU 03H ;End of Text ;CONTROL C
- EOT EQU 04H ;End of Transmission ;CONTROL D
- ENQ EQU 05H ;Enquiry ;CONTROL E
- ACK EQU 06H ;Acknowledge ;CONTROL F
- BEL EQU 07H ;Bell ;CONTROL G
- BS EQU 08H ;Backspace ;CONTROL H
- HT EQU 09H ;Horizontal Tab ;CONTROL I
- LF EQU 0AH ;Line Feed ;CONTROL J
- VT EQU 0BH ;Vertical Tab ;CONTROL K
- FF EQU 0CH ;Form Feed ;CONTROL L
- CR EQU 0DH ;Carriage Return ;CONTROL M
- REVOFF EQU 0EH ;REVERSE VIDEO OFF ;CONTROL N
- REVON EQU 0FH ;REVERSE VIDEO ON ;CONTROL O
- DLE EQU 10H ;Date Link Escape ;CONTROL P
- DC1 EQU 11H ;(X-ON) ;CONTROL Q
- DC2 EQU 12H ;Device Control 2 ;CONTROL R
- DC3 EQU 13H ;(X-OFF) ;CONTROL S
- DC4 EQU 14H ;Device Control 4 ;CONTROL T
- CLREOL EQU 15H ;CLEAR EOL ;CONTROL U
- REVTOG EQU 16H ;TOGGEL REVERSE VIDEO ;CONTROL V
- ETB EQU 17H ;End of Transmission ;CONTROL W
- CAN EQU 18H ;Cancel ;CONTROL X
- CLREOS EQU 19H ;CLEAR EOS ;CONTROL Y
- CLRSCN EQU 1AH ;CLEAR SCREEN ;CONTROL Z
- ESC EQU 1BH ;Escape ;CONTROL [
- INSLIN EQU 1CH ;INSERT LINE AT CURSOR ;CONTROL \
- DELLIN EQU 1DH ;DELETE LINE AT CURSOR ;CONTROL ]
- HOME EQU 1EH ;HOME CURSOR ;CONTROL ^
- US EQU 1FH ;Unit Separator ;CONTROL _
- ;___________________________________________________________________
- ;
- ; PATCHES:
- ;
- ORG 18AH
- DB 'Memory Mapped TRS-80 4/4p ';Limit to 33 characters
- ;
-
- ORG 1AEH
- DB 'Epson MX-80F/T Printer ';Limit to 33 characters
- ;
- ; TERMINAL PATCH AREA
- ;
- ORG 232h ;origin of WordStar terminal patch area
- HITE DB 24 ;24 lines on screen
- WID DB 80 ;80 Characters on screen .
- ;
- ORG 24BH
- UCRPOS DB 0,0,0C9h ;Not used if terminal emulated
- ;
- ORG 287H
- INISUB JMP ITERM ;initialization routine - set arrow keys.
- UNISUB JMP XTERM ;termination routine - reset arrow keys.
- USELST DB 0FFH ;Enable character in last position to show
- DELCUS DB 0 ;Delay after cursor set
- DELMIS DB 0 ;Delay after other functions
- ;
- ; The following section contains the primary code which implements
- ; memory map switching in mod 4/4p. Be careful when modifying this
- ; section.
- ;
- MEMAPV DB 0FFH ;Use memory-mapped video
- MEMADR DW 0F800H ;MODEL 4/4P VIDEO ADDRESS
- HIBIV DB 0FFh ;Set HI order bit for inverse video
- HIBCUR DB 0FFh ;cursor set on self
- CRBLIV DB 0FFh ;blink cursor on self
- ;
- ORG 29AH
- UCNSTA DB 0,0,0C9h ;no special console status from BIOS
- UCONI DB 0,0,0C9h ;no special console input
- UCONO DB 0,0,0C9h ;no special console output
- ;
- ; SWITCH IN MEMORY MAPPED VIDEO
- ORG 02A3H
- SWIN DB 03EH ;LD A,8EH z80 op codes db for asm.com
- DB 08EH ;OUT (84),A video memory port
- DB 0D3H ;RET
- DB 084H
- DB 0C9H
- ;
- ; SWITCH OUT MEMORY MAPPED VIDEO
- ORG 02A9H
- SWOUT DB 03EH
- DB 08FH
- DB 0D3H
- DB 084H
- DB 0C9H
-
- ;
-
- ORG 2AFH
- DEL1 DB 9 ;SHORT DELAY 3
- DEL2 DB 3 ;MEDIUM DELAY 9
- DEL3 DB 3 ;delay before help menus appear.
- DEL4 DB 3 ;delay after signon screen.
- DEL5 DB 0 ;delay after keystroke
- ORG 2B9H
- DEFDSK DB 1 ;1=A:,2=B:,3=C:,,12=M: TEST DRIVE FOR OVERLAYS
- SCRLSZ DB 22 ;LINES scrolled on CRT
-
-
- ;___________________________________________________________________
- ;
- ; SPECIAL ROUTINES FOR model 4/4p trs - 80
- ;
- ; Note that these routines use addresses within BIOS.
- ;
- ORG 02CBh ;MORPAT (SPACE FOR USER TO 34B)
- ;
- ; Initialization routine -- clear screen, set arrow keys
- ; for Wordstar.
- ;
- ITERM MVI C,26 ;CLEAR SCREEN
- CALL CONOUT
- ;
- DB 21H,0CH,03H ; LD HL,KEYDE1 ;set arrow keys
- DB 22H,1EH,03H ; LD (KEYDEF),HL ; to Wordstar
- DB 18H,0DH ; JR START
-
- XTERM MVI C,26 ;CLEAR SCREEN
- CALL CONOUT
- DB 21H,20H,03H ; LD HL,KEYDE2 ;set arrow keys
- DB 22H,1EH,03H ; LD (KEYDEF),HL ; to CP/M
- DB 18H,00H ; JR START
-
- ;
- DB 2AH,01H,00H ;START: LD HL,(0001H)
- DB 01H,30H,00H ; LD BC,0030H
- DB 09H ; ADD HL,BC
- DB 01H,10H,00H ; LD BC,0010H
- DB 09H ; ADD HL,BC
- DB 5EH ; LD E,(HL)
- DB 23H ; INC HL
- DB 56H ; LD D,(HL)
- DB 21H,13H,00H ; LD HL,0013H
- DB 19H ; ADD HL,DE
- DB 0EBH ; EX DE,HL
- DB 2AH,1EH,03H ; LD HL,(KEYDEF)
- DB 3EH,03H ; LD A,03
- DB 01H,11H,00H ; LD BC,0011H
- DB 0EBH ; EX DE,HL
- DB 09H ; ADD HL,BC
- DB 0EBH ; EX DE,HL
- DB 0EH,06H ; LD C,6
- DB 0EDH,0B0H ; LDIR
- DB 13H ; INC DE
- DB 3DH ; DEC A
- DB 20H,0F2H ; JR NZ,L025E
- DB 0C9H ; RET
- ;
- ; KEYDE1 IS THE KEY DEFINITION WHEN IN WS.
- ;
- KEYDE1: ;UNSHIFTED KEYS
- DB ESC ;CLEAR
- DB 03H ;BREAK
- DB 05H ;UP
- DB 18H ;DOWN
- DB 13H ;LEFT
- DB 04H ;RIGHT
- ;
- ; SHIFT PLUS KEYS
- ;
- DB 18H ;CLEAR
- DB 03H ;BREAK
- DB 12H ;UP
- DB 03H ;DOWN
- DB 01H ;LEFT
- DB 06H ;RIGHT
- ;
- ; CONTROL PLUS KEYS
- ;
- DB 7FH ;CLEAR
- DB 03H ;BREAK
- DB 0BH ;UP
- DB 0AH ;DOWN
- DB 08H ;LEFT
- DB 09H ;RIGHT
- KEYDEF: DB 0,0
- ;
- ; KEYDE2 IS THE KEY DEFINITION AFTER EXITING WS.
- ;
- KEYDE2: ;UNSHIFTED KEYS
- DB ESC ;CLEAR
- DB 03H ;BREAK
- DB 0BH ;UP
- DB 0AH ;DOWN
- DB 08H ;LEFT
- DB 09H ;RIGHT
- ;
- ; SHIFT PLUS KEYS
- ;
- DB 18H ;CLEAR
- DB 03H ;BREAK
- DB 05H ;UP
- DB 18H ;DOWN
- DB 13H ;LEFT
- DB 04H ;RIGHT
- ;
- ; CONTROL PLUS KEYS
- ;
- DB 7FH ;CLEAR
- DB 03H ;BREAK
- DB 0BH ;UP
- DB LF ;DOWN
- DB BS ;LEFT
- DB HT ;RIGHT
- ;
- ; Output to console routine used to clear screen
- ;
- CONOUT LHLD 1 ;fetch BIOS address
- MVI L,0CH ;offset for console output routine
- PCHL ;jump to it
- RET
- ;
- ; ********* END AT 034C, 034DH IS USED BY WORDSTAR **********
- ;
- ; PROGRAM OPTION PATCH SECTION
- ;
- ; (Flags are 0FFH for on, 00H for off).
- ;
- ON EQU 0FFH
- OFF EQU 00H
- ;
- ORG 34DH
- ITHELP DB 0 ;initial help level: 0,1,2, or 3 (^JHn)
- NITHLF DB ON
- ITITOG DB OFF ;Insert mode flag (^V)
- ITDSDR DB ON ;Directory display flag (^KF)
- ORG 351H
- INITPF DB 08 ;Line height (in 1/48's)
- DB 66 ;Paper length (in lines) (.PLn)
- DW 528 ;Paper length (in 1/48's)
- DB 08 ;Line height repeated here
- DB 03 ;Top margin (in lines) (.MTn)
- DW 24 ;Top margin (in 1/48's)
- DB 08 ;Line height repeated again
- DB 02 ;Heading margin (in lines) (.HMn)
- DW 16 ;Heading margin (in 1/48's)
- DB 08 ;Line height repeated again
- DB 08 ;Bottom margin (in lines) (.MBn)
- DW 64 ;Bottom margin (in 1/48's)
- DB 08 ;Line height repeated again
- DB 02 ;Footing margin (in lines) (.FMn)
- DW 16 ;Footing margin (in 1/48's)
- DB 08 ;Line height repeated again
- DB 0 ;Must be 0 for standard char width
- DB 12 ;Standard char width (1/120's)(12=10char/inch)
- DB 10 ;Alternate char width (1/120's)(10=12/inch)
- DB 08 ;Page offset in characters (.POn)
- INITLM DB 9-1 ;Left margin minus 1
- INITRM DB 73-1 ;Right margin minus 1
- INITSR DB 3 ;Superscript roll (in 1/48's)
- ORG 36DH
- INITWF DB ON ;Word wrap flag (^OW)
- DB ON ;Justification flag (^OJ)
- DB ON ;Variable tabs flag (^OV)
- DB OFF ;Soft hyphen entry flag (^OE)
- DB OFF ;Hyphen help flag (^OH)
- DB ON ;Print control display flag (^OD)
- DB ON ;Ruler display flag (^OT)
- DB ON ;Dynamic page break flag
- DB ON ;Page break display flag (^OP)
- DB 1 ;Line spacing: 1-5 (.LS)
- ORG 378H
- NONDOC DB ON ;Enter WS in Non-document mode
- ORG 379H
- DOTSON DB ON
- ORG 37AH
- DECCHR DB '.' ;Decimal tab character
- ORG 37BH
- DOTCHR DB '.' ;DOT command character
- ORG 3C9H
- HZONE DB 4 ;Hyphenation (3=shorter words, 5=longer words)
- ORG 3F8H ;change defaults in print command:
- PODBLK DB OFF ;Disk file output from Print flag
- DB On ;Use forms feeds during print
- DB OFF ;Suppress page format during print
- DB OFF ;Pause between pages during print
- ORG 3FDH
- ITPOPN DB OFF ;Omit page numbers during print
- DB ON ;Micro justify flag
- DB ON ;Bidirectional print flag
- ORG 389H
- RVELIM DB ',' ;Delimiter character in data file
- ORG 38EH
- VARCH1 DB '&' ;Variable start
- VARCH2 DB '&' ;Variable end
- ORG 430H
- AUTOBS DB 0 ;Automatic backspace
- ;*********************************************************************
- ;
- ; PRINTER PATCH SECTION
- ;
- ; Most parameters will consist of a character count,
- ; followed by a string of ASCII characters.
- ;
- ; Make sure to leave the same number of bytes defined
- ; as were previously defined for each parameter,
- ; by adding or deleting trailing zeroes as needed.
- ;
- ; SET FOR EPSON MX - 80 PRINTER
- ;
- ORG 69AH
- BLDSTR DB 3 ;Number of strikes for boldface
- DBLSTR DB 2 ;Number of strikes for doublestrike
- ORG 69CH
- PSCRLF DB 02H,CR,LF ;Advance to next line sequence
- DB 0,0,0,0,0,0,0,0
- PSCR DB 01H,CR,0,0,0,0,0;Return carriage for overprint
- PSHALF DB 0,0,0,0,0,0,0 ;Half line feed sequence
- PBACKS DB 01H,BS,0,0,0,0 ;Backspace character sequence
- PALT DB 01H,0FH,0,0,0 ;Alternate pitch (^PA) -
- PSTD DB 01H,DC2,0,0,0 ;Standard pitch (^PN) -
- ROLUP DB 03H,ESC,53H,0,0 ;Superscript character sequence
- ROLDOW DB 03H,ESC,53H,1,0 ;Supscript character sequence
- USR1 DB 02H,ESC,'E',0,0 ;User sequence 1 (^PQ) - Emphasized print on
- USR2 DB 02H,ESC,'F',0,0 ;User sequence 2 (^PW) - Emphasized print off
- USR3 DB 01H,0EH,0,0,0 ;User sequence 3 (^PE) - Double width on
- USR4 DB 01H,DC4,0,0,0 ;User sequence 4 (^PR) - Double width off
- RIBBON DB 02H,ESC,'4',0,0 ;Alternate ribbon (^PY) - Italics on
- RIBOFF DB 02H,ESC,'5',0,0 ;Standard ribbon (^PY) - Italics off
- PSINIT DB 02H,ESC,40H,0,0,0,0,0,0
- DB 0,0,0,0,0,0,0,0
- PSFINI DB 02H,ESC,40H,0,0,0,0,0
- DB 0,0,0,0,0,0,0,0,0
- ORG 70FH
- SOCHR DB '\' ;Character used for strikeout
- ULCHR DB '_' ;Character used for underlining
-
- END