home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol177 / ws$vt52.asm < prev   
Encoding:
Assembly Source File  |  1984-09-10  |  3.2 KB  |  111 lines

  1. ;TITLE USER1    04/23/81    TERMINAL PATCH AREA
  2. ;    FOR WORDSTAR RELEASE 3.0, May 81 
  3.  
  4. ; see Terminal Patch Area, page E-1, installation manual
  5. ;    VT52 modifications
  6. ;
  7. OUTCHR    EQU    01EFH
  8. MEMORY    EQU    29B8H
  9.  
  10. TBASE EQU 100H    ; WHERE TO LOAD FOR NORMAL CP/M
  11.  
  12. ;    ASEG    ; ABSOLUTE CODE FOR LISTING
  13.     ORG TBASE + 90H    ; terminal legend coding here
  14.     DB 'DEC VT-52 compatible terminal   '
  15.     ORG TBASE+148H    ; BEGINS AT 248 HEX OR 4448 HEX
  16.      PAGE 63    ; SETS PAGE LENGTH
  17.  
  18. ;    PATCHING NORMALLY DONE VIA INSTALL.COM
  19. ;    ADDITIONAL PATCHING FOR UNUSUAL (E.G., VT52) TERMINALS
  20. ;
  21. ;    ALWAYS PATCH: SCREEN HITE & WIDTH, CURSOR
  22. ;    ALL OTHERS ARE OPTIONS FOR SPECIAL CASES OR ENHANCEMENTS
  23. ;
  24. HITE:    DB 24    ; MUST BE EXACT SCREEN HEIGHT IN LINES
  25. WID:    DB 80    ; MUST BE <= EXACT SCREEN WIDTH
  26. ;
  27. ;    IN ALL CHAR STRINGS SENT TO TERMINAL, 
  28. ;     FIRST BYTE IS #CHAR, THEN CHARS TO FOLLOW
  29. ;
  30. ;    CURSOR POSITIONING - MANDATORY PATCH
  31. ;            Done via ^Y, then
  32. ;            LINE # PLUS 20H,
  33. ;
  34. ESC    EQU    01BH
  35. ;            COL # PLUS 20 H.
  36. ;    CURSOR POSITIONING LEAD-IN CHARACTER SEQUENCE:
  37. CLEAD1:    DB 2    ; NUMBER OF CHARACTERS
  38.     DB ESC    ; ESCAPE CHAR
  39.     DB 'Y'    ;
  40.     DB 0,0,0 ; EXTRA SPACE
  41.     DB 0,0,0
  42. ;
  43. ;    CURSOR POSITIONING STRING SENT BETWEEN LINE AND COLUMN
  44. CLEAD2:    DB 0    ;    NUMBER OF CHAR - NONE IN THIS EXAMPLE
  45.     DB 0    ; FIRST CHAR
  46.     DB 0,0,0    ; SECOND THRU 4TH
  47. ;    
  48. ;    CURSOR POSITIONING STRING SENT AFTER
  49. ;    BOTH LINE AND COLUMN HAVE BEEN SENT
  50. CTRAIL:    DB 0    ; NUMBER OF CHARACTERS
  51.     DB 0,0,0,0
  52.  
  53. ;    FLAG NON-ZERO TO SEND COLUMN BEFORE LINE
  54. CB4LFB:    DB 0    ; LINE GOES BEFORE COLUMN IN THIS EXAMPLE
  55. ;
  56. ;    OFFSET TO ADD TO LINE
  57. LINOFF:    DB 20H    ; ADD THIS TO LINE #, WHERE 0 IS TOP LINE ON SCREEN
  58. ;    OFFSET TO ADD TO COLUMN
  59. COLOFF:    DB 20H    ; ADD THIS TO COL#, WHERE 0 IS LEFT EDGE
  60. ;
  61. ;    BINARY/ASCII FLAG AND # ASCII DIGITS
  62. ASCUR:    DB 0    ; ZERO TO SEND BINARY LINE AND COLUMN
  63.         ; 2 TO SEND 2-DIGIT ASCII NUMBERS
  64.         ; 3 TO SEND 3-DIGIT ASCII NUMBERS
  65. ;    
  66.     DB 0,0,0    ; RESERVED FOR EXPANSION
  67. ;
  68. ;    PROVISION FOR POSITIONING CURSOR BY USER-CODED SUBROUTINE
  69. ;    INSTEAD OF UNDER CONTROL OF ABOVE ITEMS.
  70. ;    FOR USE IN EXCEPTIONAL CASES ONLY.
  71. ;
  72. ;    PUT A JMP INSTRUCTION IN YOUR SUBROUTINE IN THE FOLLOWING
  73. ;    3 BYTES. WHENEVER FIRST BYTE IS NON-ZERO, THIS POSITION WILL BE
  74. ;    CALLED TO POSITION CURSOR; ABOVE PATCH ITEMS WILL BE
  75. ;    DISREGARDED.
  76. ;
  77. UCRPOS:    NOP    ;    NORMALLY ZERO, OR A JMP TO YOUR
  78.     NOP    ;    SPECIAL CURSOR ROUTINE
  79.     RET    
  80. ;
  81. ;    SEE "MORPAT" AT THE END OF THIS LISTING
  82. ;    FOR SPACE IN WHICH TO PUT THE SUBROUTINE
  83. ;
  84. ;    YOUR SUBROUTINE WILL RECEIVE LINE IN L REGISTER, (0=TOP SCREEN),
  85. ;    COLUMN IN H REGISTER (0=LEFT EDGE)
  86. ;    YOUR ROUTINME MAY MODIFY ALL REGISTERS.
  87. ;    TO OUTPUT A CHAR TO THE TERMINAL FROM WITHIN YOUR SUBROUTINE,
  88. ;    CALL OUTCHR. EXAMINE THE FOLLOWING
  89. ;    2 BYTES WITH THE DEBUGGER TO DETERMINE THE ADDRESS TO CALL IN
  90. ;    THE CURRENT RELEASE OF WORDSTAR.
  91. ;
  92. ;    * = 267H
  93.     DW OUTCHR    ; ADDRESS OF BYTE OUTPUT ROUTINE
  94. ;    
  95. ;    YOUR CUSTOM ROUTINE WILL ALSO RECEIVE THE FOLLOWING, WHICH MIGHT BE
  96. ;    USEFUL IN SPECIAL VIDEO BOARD DRIVERS:
  97. ;        DE = NUMBER OF CHAR POSITIONS FROM BEGINNING OF SCREEN
  98. ;            TO NEW CURSOR POSITION
  99. ;        BC = NUMBER OF CHAR POSITIONS FROM BEGINNING SCREEN TO
  100. ;            BEGINNING OF LINE IN WHICH CURSOR IS BEING PLACED.
  101. ;
  102.     DB 0,0,0,0    ; RESERVED BYTES
  103. ;
  104. ;
  105. ;    EVERYTHING THAT FOLLOWS IS OPTIONAL.
  106. ;    EACH ITEM RELATES TO EITHER ENHANCED PERFORMANCE
  107. ;    OR TO ACCOMODATE UNUSUAL TERMINALS.
  108. ;
  109. ;    add later after above works
  110. ;
  111.     end