home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol147 / wm-patch.asm < prev   
Encoding:
Assembly Source File  |  1984-04-29  |  11.3 KB  |  523 lines

  1. ; DATE 00/00/00  (0:04  last revision
  2. ;
  3. ; SIG/M release version WYSE200 set to FALSE, CLOCK set TRUE for Compupro
  4. ; system support clock routine.
  5. ;
  6.  
  7.     TITLE    'A WORDMASTER SPECIAL WyseWord'
  8.  
  9. ;
  10. ; DATE 10/05/83 18:13
  11. ; by: H.M. Van Tassell, 120 Hill Hollow Rd, Watchung NJ 07060 (201)755-5372
  12. ;
  13. ; PATCHS WM FOR 2 BYTE SEQUENCE KEYS, PROGRAMS  FCN KEYS, AND TIME STAMPS
  14. ;
  15. ; THE PATCH FOR TIME STAMPING USES THE COMPUPRO SYSTEM SUPPORT CLOCK
  16. ; ROUTINE. YOU MUST SUPPLY YOUR OWN CLOCK ROUTINE OR SET THE CLOCK
  17. ; EQUATE TO FALSE
  18. ;
  19. ; TO USE YOU MUST START FILE WITH "; DATE <-16 SPACES-> "
  20. ; IT IS NECESSARY THAT DATE START AT THE THIRD LOCATION ON
  21. ; THE FIRST LINE WITH 16 OR MORE FOLLOWING SPACES
  22. ;
  23. ; THE PATCH WAS WRITTEN TO PROGRAM THE FUNCTION KEYS ON THE WYSE-200
  24. ; OR TO USE ON  WYSE-100 WITH THE WYSEWORD FIRMWARE (PROM) INSTALLED.
  25. ; YOU MAY FIND THE ROUTINES HELPFUL IF YOUR TERMINAL TERMINAL HAS
  26. ; PROGRAMABLE FUNCTION KEYS.
  27. ;
  28. ; THERE IS A ROUTINE TO 'RE-PROGRAM' WORDMASTER TO ALLOW IT TO RESPOND
  29. ; TO TWO BYTE SEQUENCES THAT MANY TERMINALS USE FOR SPECIAL FUNCTION KEYS
  30. ; IT IS USED HERE TO ALLOW USE OF THE SPECIAL WordStar SEQUENCES THAT THE
  31. ; WYSEWORD USES, BUT IT CAN BE USED FOR ESCAPE SEQUENCES WITH LITTLE CHANGE.
  32. ;
  33. ; LOOK THROUGH THE PATCH AND REVISE AS NECESSARY TO FIT YOUR NEEDS.
  34. ;
  35. ;FOR WORDMASTER VERSION 1.07 AND WYSE-100/200 TERMINAL-SEE EQUATE
  36. ;FIRST VERSION 06/12/83 BY H.M.VAN TASSELL
  37. ; TO USE JUST ASSEMBLE PATCH AND OVERLAY THE WORDMASTER COM FILE
  38. ; USING DDT.
  39. ;>>>>>>>>>>> be sure to save enough pages when patch is applied <<<<<<<<<<
  40.  
  41. FALSE    EQU    0
  42. TRUE    EQU    NOT FALSE
  43.  
  44. CLOCK    EQU    TRUE        ;SET TRUE FOR RDTIME ROUTINE
  45.  
  46. WYSE200    EQU    FALSE        ;USE FALSE FOR WYSE-100
  47.  
  48. REV    EQU    7        ;REVISION NUMBER
  49.  
  50. BDOS    EQU    0005H        ;BDOS CALL
  51. ESC    EQU    1BH
  52. LF    EQU    0AH
  53. CR    EQU    0DH
  54. DEL    EQU    7FH
  55. PRSTR    EQU    09H        ;PRINT STRING ENDING WITH $
  56.  
  57. SIGN1:    EQU    167H        ;FIRST SIGNON MESSAGE
  58. SIGN2:    EQU    106H        ;SECOND SIGNON MESSAGE
  59.  
  60. OUTCHR:    EQU    01EFH        ;WM-SEND OUT CHAR
  61.  
  62. CLSSCRN: EQU    0180H        ;BEGIN CLEAR SCREEN ROUTINE-6 NOP
  63. TCURSOR: EQU    0196H        ;POSITION CURSOR ROUTINE
  64. EREOL:    EQU    01BBH        ;ERASE TO END OF LINE CHAR
  65. NOVIO:    EQU    01BDH        ;PUT 0FFH HERE FOR NO VIO
  66. DELCLR:    EQU    01C1H        ;START OF DELAY BYTES IN MS (19H)
  67.  
  68. PBEGMEM: EQU    01B7H        ;WM BEGIN OF DATA MEMORY
  69. NORJMP:    EQU    0269H        ;WM NORMAL JMP AT 100H
  70. PATCH:    EQU    23B6H        ;PATCH WM AT THIS ADDR TO NEW PATCH
  71. BEGIN:    EQU    29B8H        ;WM OLD BEGIN DTAT MEMORY
  72.  
  73. DIRECT:    EQU    23C7H        ;WM ROUTINE FOR DIRECT BIOS CALLS
  74.  
  75. LENDAT:    EQU    15        ;LENGTH OF DATE STRING
  76. CDATE:    EQU    001DH        ;ADDRESS OF CALL TO LOCATE DATSTR
  77. CHOUT:    EQU    24FCH        ;ROUTINE WHERE PROBE WAS PLACED
  78. PROBE:    EQU    04E0H        ;PLACE TO PUT JMP TO DATE PATCH
  79. RET1:    EQU    04E3H        ;RETURN HERE IF NOTHING DONE
  80. RET2:    EQU    04DEH        ;RETURN HERE IF SOMETHING DONE
  81.  
  82.     IF    WYSE200
  83.     ORG    100H        ;PATCH JUMP TO LABEL ROUTINE
  84.     JMP    LABELS
  85.     ENDIF    ;WYSE200
  86.     IF  NOT WYSE200
  87.     ORG    100H
  88.     JMP    NORJMP
  89.     ENDIF    ;NOT WYSE200
  90.  
  91.     ORG    PBEGMEM        ;PATCH IN NEW BEGIN MEM
  92.     DW    BEGBUFF        ;TO START AT END OF PATCH
  93.  
  94.     IF    CLOCK
  95.     ORG    PROBE        ;DATE STAMP PATCH
  96.     JMP    DAPATCH
  97.     ENDIF    ;CLOK
  98.  
  99.     ORG    SIGN2        ;GET RID OF COMMERICAL 
  100.     DB    0
  101.  
  102.     ORG    SIGN1        ;NEW SIGN ON MESSAGE
  103.     DB    '@'+REV     ;REVISION LETTER AFTER VERSION
  104.     IF    WYSE200
  105.     DB    ' WYSE-200'
  106.     ELSE
  107.     DB    ' WYSE-100'
  108.     ENDIF    ;WYSE200
  109.     DB    ' WordStar keys'
  110.     DB    0DH,0AH
  111.  
  112.     ORG    CLSSCRN        ;CLEAR SCREEN ROUTINE
  113.     DB    0,0,0,0,0,0    ;TO KEEP CONCOMPATIBILITY
  114.     MVI    A,1AH        ;^Z CLEARS SCREEN
  115.     CALL    OUTCHR        ;SEND IT
  116.     RET
  117.  
  118.     ORG    TCURSOR        ;POSITION CURSOR ROUTINE
  119.     MVI    A,ESC        ;FIRST AN ESCAPE
  120.     CALL    OUTCHR
  121.     MVI    A,'='        ;THEN AN '="
  122.     CALL    OUTCHR
  123.     MVI    A,' '        ;OFFSET
  124.     ADD    L
  125.     CALL    OUTCHR        ;SEND ROW NUMBER
  126.     MVI    A,' '
  127.     ADD    H
  128.     CALL    OUTCHR        ;AND SEND COLUMN
  129.     RET            ;ALL DONE
  130.  
  131.     ORG    EREOL        ;ERASE TO END OF LINE CHAR
  132.     DB    ESC,'T'
  133.     
  134.     ORG    NOVIO        ;NO VIO BOARD
  135.     DB    0FFH
  136.  
  137.     ORG    DELCLR        
  138.     DB    0        ;DELAY WHILE CLERING SCREEN
  139.     DB    0        ;DELAY WHILE POSITION CURSOR
  140.     DB    0        ;DELAY WHILE EREOL
  141.  
  142. ;IN WM STARTING AT 11C5H THERE IA A 2BYTE OFFSET TABLE FOR
  143. ;EACH CTRL CHR-SOME OF THESE WE WILL PATCH TO CHANGE THE
  144. ;ACTION OF THE CTRL CHRS.
  145.  
  146.  
  147.     ORG    11DDH        ;^L DO 4 TIMES
  148.     DW    1345H        ;WAS ^@
  149.  
  150.     ORG    1150H        ;LOAD CTRL KEY FOR 4 TIMES
  151.     DB    0CH        ;MUST MATCH 
  152.  
  153.     ORG    11EFH        ;^U INTERRUPT
  154.     DW    23EBH        ;WAS 14BF
  155.  
  156.     ORG    11F1H        ;^V INSERT TOGGLE
  157.     DW    150BH        ;WAS 1345
  158.  
  159.     ORG    239DH        ;DISABLE VIO
  160.     DB    0FFH        ;WAS 16
  161.  
  162.     ORG    11FDH        ;^\ DELETE LINE LEFT
  163.     DW    14BFH        ;WAS 1460
  164.  
  165.     ORG    11FFH        ;^] DELETE LINE RIGHT
  166.     DW    14DDH        ;WAS 151A
  167.  
  168. ;IN WM STARTING AT 10D6H THERE IS A 1 BYTE OFFSET TABLE FOR
  169. ;EACH CTRL CHR WHICH SETS THE PRIORITY OF THE ACTION CAUSED BY
  170. ;THE CTRL KEY AND SHOULD BE KEEP SAME IF CTRL KEY 2 BYTE OFFSET
  171. ;TABLE IS CHANGED
  172.  
  173.     ORG    10EDH        ;CORRECT ^W BUG
  174.     DB    80H
  175.  
  176.  
  177. ;NOW PUT IN PATCH TO TRANSLATE THE 2 BYTE WYSEWORD COMMANDS TO
  178. ;SINGLE CHAR WORD MASTER COMMANDS.
  179.  
  180.     ORG    PATCH        ;PATCH-OUT WM DIRECT CONIN
  181.     CALL    START        ;CALL AND SUBSTITUTE THIS PATCH
  182.  
  183.  
  184.     ORG    BEGIN        ;PATCH IS LOCATED AT OLD BEGIN MEM
  185. START:
  186. ;  GET FIRST CHAR INTO REG A
  187.     PUSH    B        ;PUSH REG ETC, SAME
  188.     PUSH    D        ;AS WM DIRECT CALL
  189.     PUSH    H
  190.     LXI    H,1FCCH
  191.     PUSH    H
  192.     CALL    CONIN         ;USE DIRECT BIOS CALL
  193.  
  194. ;  CHECK IF FIRST CHAR IN REG A IS IN THE CTRL CHAR CHECK TABLE
  195.     LXI    H,FCTABLE    ;HL=>FIRST CHAR CHECK TABLE
  196. FCHAR:    PUSH    PSW
  197.     MOV    A,M
  198.     ORA    A        ;IS ENTRY A ZERO-END OF TABLE
  199.     JNZ    FC1        
  200.     POP    PSW        ;YES-RETURN TO WM
  201.     RET
  202. FC1:    POP    PSW
  203.     CMP    M        ;IS ENTRY=FIRST CHAR
  204.     JZ    FC2
  205.     INX    H        ;NO-BUMP TO NEXT
  206.     INX    H        ;ENTRY AND TRY AGAIN
  207.     INX    H
  208.     JMP    FCHAR
  209. FC2:                ;YES GET XLATE TABLE ADDR
  210.     INX    H        ;BUMP TO XLATE TABLE
  211.     MOV    E,M        ;LSB
  212.     INX    H
  213.     MOV    D,M        ;MSB
  214.     PUSH    D        ;DE=>XLATE TABLE FOR FIRST CHAR
  215.  
  216. ;  DELAY TO LET ALL CHAR LEAVE TERMINAL
  217.      CALL    DELAY
  218.  
  219. ;  GET SECOND CHAR INTO REG A - THE FIRST CTRL CHAR WILL BE LOST
  220.     CALL    CONIN 
  221.  
  222. ; TRANSLATE SECOND CHAR IF ITS IN FIRST CHAR'S XLATE TABLE
  223.     POP    H        ;HL=>FIRST CHAR'S XLATE TABLE
  224. SCHAR:    PUSH    PSW
  225.     MOV    A,M        
  226.     ORA    A        ;IS ENTRY A ZERO-END OF TABLE
  227.     JZ    NOXLAT        ;YES
  228.     POP    PSW
  229.     CMP    M        ;IS ENTRY=SECOND CHAR
  230.     JZ    XLATE
  231.     INX    H        ;NO-TRY AGAIN
  232.     INX    H
  233.     JMP    SCHAR
  234.  
  235.  
  236. NOXLAT:    ;NO TRANSLATION EXCEPT CHANGE TO NUL IF CTRL CHAR
  237.     POP    PSW
  238.     CPI    ' '        ;IS SECOND CHAR >= SPACE
  239.     RNC            ;YES RETURN TO WM
  240.     MVI    A,0        ;ELSE SUBSTITUTE A NUL
  241.     RET            ;AND RETURN TO WM
  242.  
  243. XLATE:    ;MAKE TRANSLATION PER APPROPATE XLATE TABLE VALUE
  244.     INX    H        ;BUMP TO CHAR FOR TRANSLATION
  245.     MOV    A,M        ;INTO REG A
  246.     RET             ;AND RETURN TO WM
  247.  
  248. CONIN:    ;DIRECT BIOS CALL
  249.     MVI    A,6        ;OFFSET FROM WBOOT TO CONIN
  250.     LHLD    0001        ;GET BIOS WBOOT
  251.     ADD    L        ;ADD OFFSET
  252.     MOV    L,A
  253.     PCHL            ;JMP TO IT
  254.  
  255. DELAY:    LXI    B,20          ;DELAY LENGTH IN MS
  256. DLAY1:    MVI    A,5*1000/26    ;CPU SPEED=5 MH 
  257. DLAY2:    DCX    B
  258.     INX    B
  259.     DCR    A
  260.     JNZ    DLAY2        ;IF NOT 1 MS
  261.     DCX    B
  262.     MOV    A,C
  263.     ORA    B
  264.     JNZ    DLAY1
  265.     RET
  266.  
  267.  
  268. FCTABLE    ;3-BYTE TABLE FOR CHECKING FIRST CHAR
  269.     DB    'K'-40H        ;IF FIRST CHAR IS ^K
  270.     DW    KTABLE        ;USE KTABLE FOR XLATE
  271.     DB    'O'-40H
  272.     DW    OTABLE
  273. ;    DB    'P'-40H        ;DONT USE PTABLE
  274. ;    DW    PTABLE
  275.     DB    'Q'-40H
  276.     DW    QTABLE
  277.     DB    0        ;END OF TABLE
  278.  
  279. KTABLE     ;XLATE TABLE IF FIRST CHAR IS CTRL K
  280.     DB    0          ;END OF TABLE
  281.  
  282. OTABLE     ;XLATE TABLE IF FIRST CHAR IS CTRL O
  283.     DB    'X','V'-40h    ;S-INS REP=INS
  284.     DB    'I','I'-40h    ;SET TAB=TAB
  285.     DB    'N','Q'-40h    ;SET TAB/S=RT TAB STOP
  286.     DB    'R','L'-40h    ;SCRN EDIT=X4
  287.     DB    'L','L'-40h    ;SCRN EDIT/S=X4
  288.     DB    0          ;END OF TABLE
  289.  
  290. ;PTABLE    ;XLATE TABLE IF FIRST CHAR IS CTRL P
  291. ;    DB    0        ;END OF TABLE
  292.  
  293. QTABLE     ;XLATE TABLE IF FIRST CHAR IS CTRL Q
  294.     DB    'Y',']'-40H    ;LINE ERASE=EOL
  295.     DB    7FH,'\'-40H    ;RUBOUT/S=EBOL
  296.     DB    'E','^'-40h    ;HOME=TOP/BOT
  297.     DB     05,'^'-40H    ;UP KEY/S=T/B
  298.     DB    'X','^'-40h    ;DN ARROW/S=T/B
  299.     DB    'C','^'-40H    ;SCRL UP/S
  300.     DB    'R','^'-40h    ;SCRL DN/S
  301.     DB    'S','B'-40h    ;LEFT ARROW/S=L/R
  302.     DB    'D','B'-40H    ;RT ARROW/S
  303.     DB    0          ;END OF TABLE
  304.  
  305.     IF    CLOCK
  306. DAPATCH: ; THIS IS THE DATE AND TIME PATCH
  307.     CALL    CHOUT
  308.     PUSH    PSW
  309.     LDA    FIRST        ;IS THIS FIRST TIME THROUGH
  310.     ORA    A
  311.     JZ    ININIT        ;YES GO TO IT
  312.     POP    PSW
  313. RT1:    JMP    RET1        ;NO RETURN NOTHING DONE
  314.  
  315. ; INIT LOOKS AT TEXT BUFFER AND IF IT FINDS DATE IT UPDATES
  316. ; WITH CURRENT DATE & TIME
  317.  
  318. ININIT:    PUSH    B
  319.     PUSH    D
  320.     PUSH    H
  321.  
  322.     CALL    INIT
  323.  
  324.     POP    H
  325.     POP    D
  326.     POP    B
  327.     POP    PSW
  328. RT2:    JMP    RET2
  329.  
  330.  
  331. INIT:    MVI    A,0FFH
  332.     STA    FIRST        ;SET FIRST TIME FLAG
  333.     LXI    D,VERTXT    ;POINT TO TEXT AREA VER. MESSAGE
  334.     LXI    H,VMES        ;POINT TO STD. VERSION MESSAGE
  335.     MVI    C,VMLEN        ;LENGTH TO COMPARE
  336.     CALL    COMPAR
  337.     JZ    RDTIME        ;GO DO UPDATE
  338.     LHLD    RT1+1        ;CHANGE RET JUMP
  339.     SHLD    RT2+1
  340.     RET            ;AND GO HOME
  341.  
  342. RDTIME:                ;READS COMPUPRO SYSTEM SUPPORT CLOCK
  343.                 ;SUPPLY YOUR OWN ROUTINE
  344. CLKCP    EQU    50H+10        ;CLOCK COMMAND PORT
  345.     LXI    H,DATESTR    ;POINT TO DATE STRING
  346.     LXI    D,DIGTAB     ;POINT TO DIGIT TABLE
  347.     MVI    C,5        ;READ TWO COUNTER
  348. RTWO:    MVI    B,2        ;READ ONE COUNTER
  349. ;
  350. ; READ A DIGIT FROM CLOCK CHIP
  351. ; ENTRY: DE => DIGIT TABLE DATA ENTRY
  352. ;        HL => STRING POSITION
  353. ; EXIT:  ASCII DIGIT LOADED IN STRING
  354. ;        DE & HL INCREMENTED
  355. ;
  356. RONE    LDAX    D        ;GET DIGIT TABLE DATA
  357.     INX    D        ;BUMP TO NEXT ENTRY
  358.     ADI    10H        ;SET READ BIT
  359.     OUT    CLKCP        ;OUTPUT DIGIT DATA
  360.     CPI    15H        ;CHECK FOR HOURS 10 DIGIT
  361.     IN    CLKCP+1        ;READ BCD DIGIT FROM CLOCK
  362.     JNZ    NOHOUR
  363.     SUI    8
  364. NOHOUR:    ADI    '0'        ;MAKE ASCII
  365.     MOV    M,A
  366.     INX    H        ;POINT TO NEXT STR POSITION
  367.     DCR    B    
  368.     JNZ    RONE        ;GET SECOND DIGIT
  369.     INX    H        ;BUMP OVER SEPERATOR
  370.     MOV    A,C
  371.     CPI    3
  372.     JNZ    NOBUMP
  373.     INX    H        ;BUMP OVER WHITE SPACE
  374. NOBUMP:    DCR    C
  375.     JNZ    RTWO        ;READ TWO MORE DIGITS
  376.     JMP    GOTOIT        ;GO TO IT
  377.  
  378. DIGTAB:    DB    10,9,8,7,12,11,5,4,3,2 ;CLOCK DIGIT TABLE
  379.  
  380. GOTOIT:    LXI    H,DATESTR    ;HL POINTS TO DATE STRING
  381.     LXI    D,BEGDATE    ;DE POINTS TO DATA AREA
  382.     MVI    C,LENDAT    ;MOVE 18 BYTES
  383. MOVEIT:    MOV    A,M
  384.     STAX    D
  385.     INX    H
  386.     INX    D
  387.     DCR    C
  388.     JNZ    MOVEIT
  389.     
  390.     LXI    D,UDMSG        ;TELL WHAT WE HAVE DONW
  391.     MVI    C,9
  392.     CALL    BDOS
  393.     RET
  394.  
  395. COMPAR:    LDAX    D    ;RETURNS ZERO SET IF SAME
  396.     ANI    5FH    ;MAKE UPPER CASE
  397.     CMP    M
  398.     RNZ
  399.     DCR    C
  400.     RZ
  401.     INX    H
  402.     INX    D
  403.     JMP    COMPAR
  404.  
  405. DATESTR:DB    'MM/DD/YY  HH:MM' 
  406.  
  407. FIRST:    DB    0
  408.  
  409. UDMSG:    DB    'Up Dated',CR,LF,'$'
  410.  
  411. VMES:    DB    'DATE'
  412. VMLEN:    EQU    $-VMES
  413.     ENDIF    ;CLOCK
  414.  
  415. BEGBUFF: EQU    $
  416. VERTXT:     EQU    BEGBUFF+1+2
  417. BEGDATE: EQU    VERTXT+VMLEN+1
  418.  
  419.     IF    WYSE200        
  420. ;
  421. LABELS:        ;THIS CODE IS USED ONCE AND THEN OVER-WRITTEN
  422. ;
  423.            LXI    H,WTABLE    ;HL=> KEYS DATA TABLE
  424.     MOV    E,M        ;LSB
  425.     INX    H        ;MSB
  426.     MOV    D,M        ;DE=>1ST STRING TO SEND
  427.     MVI    C,9
  428.     PUSH    H
  429.     CALL    BDOS        ;FIRST STRING
  430. DOKEYS:    POP    H
  431.     INX    H         ;BUMP TO NEXT TABLE ENTRY
  432.     MOV    A,M        ;IS TABLE ENTRY=0?
  433.     MOV    E,M        ;LSB
  434.     INX    H
  435.     MOV    D,M        ;MSB
  436.     ORA    D        ;IS ENTRY = 0
  437.     JZ    DONE        ;0=END OF TABLE
  438.     PUSH    H        ;SAVE OFFSET INTO TABLE
  439.     MVI    C,9        ;GET TABLE ENTRY,DE=>DATA STRING
  440.     CALL    BDOS        ;SEND IT
  441.     JMP    DOKEYS
  442.  
  443. DONE:    LXI    H,0269H        ;PUT BACK NORMAL JUMP
  444.     SHLD    0101H        ;AT 100H
  445.     JMP    0269H        ;WM NORMAL ENTRY POINT
  446. ;
  447. WTABLE    DW    DTABLE        ;POINT TO DATA TABLE
  448.     DW    L0
  449.     DW    U0
  450.     DW    S0
  451.     DW    L1
  452.     DW    U1
  453.     DW    S1
  454.     DW    L2
  455.     DW    U2
  456.     DW    S2
  457.     DW    L3
  458.     DW    U3
  459.     DW    S3
  460.     DW    L4
  461.     DW    U4
  462.     DW    S4
  463.     DW    L5
  464.     DW    U5
  465.     DW    S5
  466.     DW    L6
  467.     DW    U6
  468.     DW    S6
  469.     DW    L7
  470.     DW    U7
  471.     DW    S7
  472.     DW    0        ;END OF TABLE
  473.  
  474.     ;DATA TO PROGRAM THE WYSE-200 FUNCTION KEYS
  475. DTABLE    DB    ESC,'A','1','t'    ;DIM AND REVERSE LABEL FIELDS
  476.     DB    CR,'$'
  477.  
  478. L0    DB    esc,'z','0'            ;label # 0
  479.     DB    'Save Fil',cr,'$'
  480. U0    DB    esc,'z','@',esc,'   H',cr,del,'$'
  481. S0    DB    esc,'z','H',' ',cr,del,'$'
  482.  
  483. L1    DB    esc,'z','1'            ;label # 1
  484.     DB    'End Edit',cr,'$'
  485. U1    DB    esc,'z','A',esc,'   E',cr,del,'$'
  486. S1    DB    esc,'z','I',' ',cr,del,'$'
  487.  
  488. L2    DB    esc,'z','2'             ;label # 2
  489.     DB    'Re-Start',cr,'$'
  490. U2    DB    esc,'z','B',esc,'   O',cr,del,'$'
  491. S2    DB    esc,'z','J',' ',cr,del,'$'
  492.  
  493. L3    DB    esc,'z','3'            ;label # 3
  494.     DB    ' QUIT  >',cr,'$'
  495. U3    DB    esc,'z','C',esc,'   Q',cr,del,'$'
  496. S3    DB    esc,'z','K',' ',cr,del,'$'
  497.  
  498. L4    DB    esc,'z','4'            ;label # 4
  499.     DB    '<  Find ',cr,'$'
  500. U4    DB    esc,'z','D',esc,'  <n',del,'$'
  501. S4    DB    esc,'z','L',' ',cr,del,'$'
  502.  
  503. L5    DB    esc,'z','5'            ;label # 5
  504.     DB    ' Replace',cr,'$'
  505. U5    DB    esc,'z','E',esc,'  <r',del,'$'
  506. S5    DB    esc,'z','M',' ',cr,del,'$'
  507.  
  508. L6    DB    esc,'z','6'            ;label # 6
  509.     DB    'Begining',cr,'$'
  510. U6    DB    esc,'z','F',esc,'   B',cr,'   V',cr,del,'$'
  511. S6    DB    esc,'z','N','  ',cr,del,'$'
  512.  
  513. L7    DB    esc,'z','7'            ;label # 7
  514.     DB    ' Ending ',cr,'$'
  515. U7    DB    esc,'z','G',esc,'   -B',cr,'   V',cr,del,'$'
  516. S7    DB    esc,'z','O',' ',cr,del,'$'
  517.     ENDIF    ;WYSE200
  518.  
  519.     END
  520.  
  521.  
  522.