home *** CD-ROM | disk | FTP | other *** search
- ;TITLE USER1 04/23/81 TERMINAL PATCH AREA
- ; FOR WORDSTAR RELEASE 3.0, May 81
-
- ; see Terminal Patch Area, page E-1, installation manual
- ; VT52 modifications
- ;
- OUTCHR EQU 01EFH
- MEMORY EQU 29B8H
-
- TBASE EQU 100H ; WHERE TO LOAD FOR NORMAL CP/M
-
- ; ASEG ; ABSOLUTE CODE FOR LISTING
- ORG TBASE + 90H ; terminal legend coding here
- DB 'DEC VT-52 compatible terminal '
- ORG TBASE+148H ; BEGINS AT 248 HEX OR 4448 HEX
- PAGE 63 ; SETS PAGE LENGTH
-
- ; PATCHING NORMALLY DONE VIA INSTALL.COM
- ; ADDITIONAL PATCHING FOR UNUSUAL (E.G., VT52) TERMINALS
- ;
- ; ALWAYS PATCH: SCREEN HITE & WIDTH, CURSOR
- ; ALL OTHERS ARE OPTIONS FOR SPECIAL CASES OR ENHANCEMENTS
- ;
- HITE: DB 24 ; MUST BE EXACT SCREEN HEIGHT IN LINES
- WID: DB 80 ; MUST BE <= EXACT SCREEN WIDTH
- ;
- ; IN ALL CHAR STRINGS SENT TO TERMINAL,
- ; FIRST BYTE IS #CHAR, THEN CHARS TO FOLLOW
- ;
- ; CURSOR POSITIONING - MANDATORY PATCH
- ; Done via ^Y, then
- ; LINE # PLUS 20H,
- ;
- ESC EQU 01BH
- ; COL # PLUS 20 H.
- ; CURSOR POSITIONING LEAD-IN CHARACTER SEQUENCE:
- CLEAD1: DB 2 ; NUMBER OF CHARACTERS
- DB ESC ; ESCAPE CHAR
- DB 'Y' ;
- DB 0,0,0 ; EXTRA SPACE
- DB 0,0,0
- ;
- ; CURSOR POSITIONING STRING SENT BETWEEN LINE AND COLUMN
- CLEAD2: DB 0 ; NUMBER OF CHAR - NONE IN THIS EXAMPLE
- DB 0 ; FIRST CHAR
- DB 0,0,0 ; SECOND THRU 4TH
- ;
- ; CURSOR POSITIONING STRING SENT AFTER
- ; BOTH LINE AND COLUMN HAVE BEEN SENT
- CTRAIL: DB 0 ; NUMBER OF CHARACTERS
- DB 0,0,0,0
-
- ; FLAG NON-ZERO TO SEND COLUMN BEFORE LINE
- CB4LFB: DB 0 ; LINE GOES BEFORE COLUMN IN THIS EXAMPLE
- ;
- ; OFFSET TO ADD TO LINE
- LINOFF: DB 20H ; ADD THIS TO LINE #, WHERE 0 IS TOP LINE ON SCREEN
- ; OFFSET TO ADD TO COLUMN
- COLOFF: DB 20H ; ADD THIS TO COL#, WHERE 0 IS LEFT EDGE
- ;
- ; BINARY/ASCII FLAG AND # ASCII DIGITS
- ASCUR: DB 0 ; ZERO TO SEND BINARY LINE AND COLUMN
- ; 2 TO SEND 2-DIGIT ASCII NUMBERS
- ; 3 TO SEND 3-DIGIT ASCII NUMBERS
- ;
- DB 0,0,0 ; RESERVED FOR EXPANSION
- ;
- ; PROVISION FOR POSITIONING CURSOR BY USER-CODED SUBROUTINE
- ; INSTEAD OF UNDER CONTROL OF ABOVE ITEMS.
- ; FOR USE IN EXCEPTIONAL CASES ONLY.
- ;
- ; PUT A JMP INSTRUCTION IN YOUR SUBROUTINE IN THE FOLLOWING
- ; 3 BYTES. WHENEVER FIRST BYTE IS NON-ZERO, THIS POSITION WILL BE
- ; CALLED TO POSITION CURSOR; ABOVE PATCH ITEMS WILL BE
- ; DISREGARDED.
- ;
- UCRPOS: NOP ; NORMALLY ZERO, OR A JMP TO YOUR
- NOP ; SPECIAL CURSOR ROUTINE
- RET
- ;
- ; SEE "MORPAT" AT THE END OF THIS LISTING
- ; FOR SPACE IN WHICH TO PUT THE SUBROUTINE
- ;
- ; YOUR SUBROUTINE WILL RECEIVE LINE IN L REGISTER, (0=TOP SCREEN),
- ; COLUMN IN H REGISTER (0=LEFT EDGE)
- ; YOUR ROUTINME MAY MODIFY ALL REGISTERS.
- ; TO OUTPUT A CHAR TO THE TERMINAL FROM WITHIN YOUR SUBROUTINE,
- ; CALL OUTCHR. EXAMINE THE FOLLOWING
- ; 2 BYTES WITH THE DEBUGGER TO DETERMINE THE ADDRESS TO CALL IN
- ; THE CURRENT RELEASE OF WORDSTAR.
- ;
- ; * = 267H
- DW OUTCHR ; ADDRESS OF BYTE OUTPUT ROUTINE
- ;
- ; YOUR CUSTOM ROUTINE WILL ALSO RECEIVE THE FOLLOWING, WHICH MIGHT BE
- ; USEFUL IN SPECIAL VIDEO BOARD DRIVERS:
- ; DE = NUMBER OF CHAR POSITIONS FROM BEGINNING OF SCREEN
- ; TO NEW CURSOR POSITION
- ; BC = NUMBER OF CHAR POSITIONS FROM BEGINNING SCREEN TO
- ; BEGINNING OF LINE IN WHICH CURSOR IS BEING PLACED.
- ;
- DB 0,0,0,0 ; RESERVED BYTES
- ;
- ;
- ; EVERYTHING THAT FOLLOWS IS OPTIONAL.
- ; EACH ITEM RELATES TO EITHER ENHANCED PERFORMANCE
- ; OR TO ACCOMODATE UNUSUAL TERMINALS.
- ;
- ; add later after above works
- ;
- end