home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / PROGRAMS / WSTAR / WSPAT-33.DOC < prev    next >
Text File  |  2000-06-30  |  9KB  |  263 lines

  1.  
  2.  
  3.  
  4.  
  5.         WordStar (c) * user-patchable area documentation:
  6.  
  7.  
  8.         PatcΦ location≤ fo≥ termina∞ contro∞ sequences¼ dela∙ value≤ anΣ ì
  9.         othe≥ miscellaneou≤ user-patchablσ area≤ a≤ listeΣ iε thσ "USER1║ ì
  10.         TERMINA╠ PATC╚ AREAó oµ WordStar«á (3.▓ value≤ takeε froφ IBM/MS-ì
  11.         DO╙á version¼á bu⌠á arσ thσ samσ a≤ CP/M-8░ version╗á 3.│á value≤ ì
  12.         baseΣá oε Kaypr∩ bundleΣ versioε oµ 3.3¼á bu⌠ shoulΣ bσ thσá samσ ì
  13.         fo≥ generiπ CP/M-8░ versioε anΣ possibl∙ 16-bi⌠ versioε a≤ well.)
  14.  
  15.         ┴á mucΦ faste≥ versioε oµ WordSta≥ caε bσ madσ oεá system≤á whicΦ ì
  16.         suppor⌠á inser⌠á anΣá deletσ linσ (NO╘ thσ samσá a≤á erasσá line¼ ì
  17.         deletσ erase≤ linσ anΣ theε scroll≤ u≡ thσ followinτ line≤ oε thσ ì
  18.         screen)«á Lowerinτ thσ dela∙ value≤ (o≥ eliminatinτ theφ entirel∙ ì
  19.         wheεá possible⌐ wil∞ als∩ speeΣ u≡ screeε updatσ timσ anΣ improvσ ì
  20.         keyboarΣ response.
  21.  
  22.         Als∩á listeΣá i≤á ßá recommendeΣá patcΦá (witΦá samplσá code⌐á t∩ ì
  23.         implemen⌠á printe≥ bus∙ statu≤ cal∞ fo≥ mos⌠ CP/═á system≤á whicΦ ì
  24.         havσá thσá "LISTSTó (lis⌠ devicσ status⌐ functioε implementeΣá iε ì
  25.         thei≥á BIO╙á (no⌠á al∞ BIO╙ imple- men⌠ thi≤á functioεá whicΦá i≤ ì
  26.         optional)«á Installinτá thi≤ patcΦ oε system≤ whicΦá suppor⌠á thσ ì
  27.         LISTS╘á BIO╙ functioε wil∞ improvσ keyboarΣ responsσ TREMENDOUSL┘ ì
  28.         wheε printinτ ß filσ usinτ thσ W╙ prin⌠ functioε whilσ editinτ a⌠ ì
  29.         thσ samσ time«á (Notσ tha⌠ iε m∙ example¼á thσ routinσ start≤á a⌠ ì
  30.         2D7╚ becausσ therσ i≤ codσ iε MORPA╘ froφ 2CB-2D6¼á yo⌡ ma∙ star⌠ ì
  31.         thσá codσ a⌠ 2C┬ (v3.3⌐ iµ yo⌡ havσ al∞ zeroe≤ therσ (n∩ codσá iε ì
  32.         MORPAT).)
  33.  
  34.         Therσá arσ othe≥ area≤ iε USER▒ patcΦ areß whicΦ caε bσ se⌠á froφ ì
  35.         thσá WordSta≥ option≤ men⌡ oµ WINSTALL¼á anΣ mos⌠ oµ thσá "USER4║ ì
  36.         PRINTE╥á PATC╚á AREAóá caεá bσ se⌠ u≡ usinτ thσá selectioεá oµá ß ì
  37.         printe≥á froφ thσ standarΣ supporteΣ printe≥ men⌡ and/o≥á settinτ ì
  38.         u≡ usinτ thσ custoφ set-u≡ routines.
  39.  
  40.         Fo≥ morσ information¼ consul⌠ you≥ WordSta≥ v3.▓ referencσ manua∞ ì
  41.         appendi° ├ o≥ thσ v3.│ Installatioε Manual.
  42.  
  43.         Patch locations are one of five types:
  44.  
  45.            B = Byte value               F = Flag byte (00 or FF)
  46.            J = JMP or NOP/NOP/RET       P = Patch space (00 if unused)
  47.            S = String (1 byte length value + string data area)
  48.  
  49.         (String≤ arσ storeΣ witΦ singlσ bytσ indicatinτ length¼á followeΣ ì
  50.         b∙á strinτ data«á Makσ lengtΦ ╜ zer∩ fo≥á non-applicablσá contro∞ ì
  51.         sequence≤á whicΦá wil∞á theε bσ donσ usinτá softwarσá insteaΣá oµ ì
  52.         termina∞ hardware.)
  53.  
  54.  
  55.  
  56.         ¬ (WordSta≥ i≤ ß registereΣ trademarδ oµ MicroPr∩ International
  57.            Corporation╗ Saε Rafael¼ California)
  58. è
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.           LABEL         3.2 ADDR        3.3 ADDR   LENGTH       TYPE
  71.           =====         ========        ========   ======       ====
  72.  
  73.           HITE          248             232        1            B
  74.           (Number of lines on screen)
  75.  
  76.           WID           249             233        1            B
  77.           (Number of columns per line)
  78.  
  79.           CLEAD1        24A             234        9 (1+8)      S
  80.           (Cursor addressing lead in)
  81.  
  82.           CLEAD2        253             23D        5 (1+4)      S
  83.           (Character(s) separating row/col)
  84.  
  85.           CTRAIL        258             242        5 (1+4)      S
  86.           (Ending character(s) for cursor address string)
  87.  
  88.           CB4LFG        25D             247        1            F
  89.           (Column before line flag, 0=line/col, FF=col/line)
  90.  
  91.           LINOFF        25E             248        1            B
  92.           (Line offset, 1st line=0)
  93.  
  94.           COLOFF        25F             249        1            B
  95.           (Column offset, 1st column=0)
  96.  
  97.           ASCUR         260             24A        1            B
  98.           (ASCII/binary cursor addr, 0=binary, 2=2 digit, 3=3 digits)
  99.  
  100.           ERAEOL        26D             250        7 (1+6)      S
  101.           (Erase to end of line)
  102.  
  103.           LINDEL        274             257        7 (1+6)      S
  104.           (Delete line)
  105.  
  106.           LININS        27B             25E        9 (1+8)      S
  107.           (Insert line)
  108.  
  109.           IVON          284             267        7 (1+6)      S
  110.           (Inverse video on)
  111.  
  112.           IVOFF         28B             26E        7 (1+6)      S
  113.           (Inverse video off)
  114.  
  115.           TRMINI        292             275        9 (1+8)      S
  116.           (Terminal initialization (clear screen usually))
  117.  
  118.           TRMUNI        29B             27E        9 (1+8)      S
  119.           (Terminal de-initialization (also clear screen usually))
  120.  
  121.           INISUB        2A4             287        3            J
  122.           (NOP/NOP/RET or JMP to user initialization subroutine)
  123. è
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.           LABEL         3.2 ADDR        3.3 ADDR   LENGTH       TYPE
  136.           =====         ========        ========   ======       ====
  137.  
  138.           UNISUB        2A7             28A        3            J
  139.           (NOP/NOP/RET or JMP to user de-initialization subroutine)
  140.  
  141.           USELST        2AA             28D        1            F
  142.           (Use last line on CRT, 00=don't, FF=OK) (usually 00)
  143.  
  144.           DELCUS        2AE             28E        1            B
  145.           (Delay after cursor addressing) (appox. # of MSECs)
  146.  
  147.           DELMIS        2AF             28F        1            B
  148.           (Delay after other misc. functions) (appox. # of MSECs)
  149.  
  150.           UCNSTA        2BA             29A        3            J
  151.           (0/NOP/RET or JMP to user console status routine)
  152.  
  153.           UCONI         2BD             29D        3            J
  154.           (0/NOP/RET or JMP to user console input routine)
  155.  
  156.           UCONO         2C0             2A0        3            J
  157.           (0/NOP/RET or JMP to user console output routine)
  158.  
  159.           DEL1          2CF             2AF        1            B
  160.           (short delay: cursor blink "on" portion of cycle during replace)
  161.  
  162.           DEL2          2D0             2B0        1            B
  163.           (medium-short delay: cursor blink "off" portion of cycle)
  164.  
  165.           DEL3          2D1             2B1        1            B
  166.           (medium-long delay: prefix key till menu, delay till filename help)
  167.  
  168.           DEL4          2D2             2B2        1            B
  169.           (long delay: time messages displayed, pause for screen refresh)
  170.  
  171.           DEL5          2D3             2B3        1            B
  172.           (horizontal scrolling keystroke delay)
  173.  
  174.           SCRLSZ        2DD             2BA        1            B
  175.           (horizontal scrolling scroll amount)
  176.  
  177.           MORPAT        2E0             2CB        256          P
  178.           (area available for user patches)
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188. è
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.         Printer status routine:
  202.  
  203.         Implementinτ thi≤ patcΦ fo≥ system≤ whicΦ suppor⌠ thσ LISTS╘ BIO╙ ì
  204.         functioεá wil∞ improvσ keyboarΣ anΣ printe≥ responsσ timσá durinτ ì
  205.         print≤á whilσá editing«á (Seσ note≤ abovσ fo≥ morσ info.⌐á (Afte≥ ì
  206.         assemblinτ thσ patch¼ usσ DD╘ t∩ overla∙ .HE╪ filσ ont∩ installeΣ ì
  207.         versioεá oµ WordStar¼á theε usσ ß SAV┼ 6╣ WSNEW.CO═ anΣá tes⌠á i⌠ ì
  208.         out¼á (includinτ editinτ ß filσ durinτ print⌐ beforσ erasinτ you≥ ì
  209.         origina∞á WS.CO═á anΣ renaminτ WSNEW.CO═ t∩ WS.COM«á (Bσ surσá t∩ ì
  210.         savσ ß backu≡ cop∙ oµ thσ original¼ maste≥ version¼ though...)
  211.  
  212.         ;
  213.                 ORG     02D7H   ; (in MORPAT area (USER1))
  214.         ;
  215.         ; (Area to use in MORPAT may be different, see notes above.)
  216.         ;
  217.         USRPST:                 ; (User printer status routine)
  218.                 LHLD    0001H   ; Get addr of JMP WBOOT in BIOS table
  219.                 LXI     D,42    ; +42 (decimal) gives JMP LISTST addr
  220.                 DAD     D       ; HL = addr of JMP LISTST
  221.                 LXI     B,USRP2 ; return addr after LISTST "call"
  222.                 PUSH    B       ; (push ret. addr on stack)
  223.                 PCHL            ; (JMP to HL location)
  224.         USRP2:                  ; (return location)
  225.                 CPI     0FF     ; is printer ready?
  226.                 RZ              ; if so, return with carry = 0
  227.                 STC             ; else set carry flag
  228.                 RET             ; and return (printer busy/not ready)
  229.         ;
  230.         ;
  231.                 ORG     0718H   ; (in USER4 area)
  232.         HAVBSY: DB      0FFH    ; set=FF to indicate have busy
  233.         ;
  234.                 ORG     0719H   ; (in USER4 area)
  235.         LIBSY:  JMP     USRPST  ; JMP to user status routine
  236.         ;
  237.                 END
  238.         ;
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262. 
  263.