

                  CP    +18                    ,
                  JR    NC,0F81,ADD-CHAR      
                                             .
                  CP    +07                   ','.
                  JR    C,0F81,ADD-CHAR
                  CP    +10                  ;  
                  JR    C,0F92,ED-KEYS       .

   - INK to TAB.

                  LD    BC,+0002            INK  PAPER 
                                             .
                  LD    D,A                    D.
                  CP    +16                    INK 
                  JR    C,0F6C,ED-CONTR     PAPER

AT  TAB   :

                  INC   BC                    .
                  BIT   7,(FLAGX)            ,  
                  JP    Z,101E,ED-IGNORE     INPUT LINE... .
                  CALL  15D4,WAIT-KEY         
                  LD    E,A                     E.

     .

0F6C ED-CONTR     CALL  15D4,WAIT-KEY         .
                  PUSH  DE                    .
                  LD    HL,(K-CUR)           K-CUR.
                  RES   0,(MODE)             ' K'.
                  CALL  1655,MAKE-ROOM          .
                  POP   BC                    .
                  INC   HL                    .
                  LD    (HL),B                .
                  INC   HL                     ,
                  LD    (HL),C                , 
                                             2 , ..
                                             INK  PAPER.
                  JR    0F8B,ADD-CH-1        .

 'ADDCHAR' (" ")
       EDIT  INPUT.

0F81 ADD-CHAR     RES   0,(MODE)             ' K'.
                  LD    HL,(K-CUR)            .
                  CALL  1652,ONE-SPACE        .
0F8B ADD-CH-1     LD    (DE),A                   
                  INC   DE                    ,  
                  LD    (K-CUR),DE            .
                  RET                           ED-LOOP.

    :

0F92 ED-KEYS      LD    E,A                    DE.
                  LD    D,+00               
                  LD    HL,+0F99               .
                  ADD   HL,DE                  
                  LD    E,(HL)                   E.
                                               
                                              
                                              
                                             .
                  ADD   HL,DE                  
                                                 
                                             ,
                  PUSH  HL                     .
                  LD    HL,(K-CUR)              HL
                  RET                          
                                            .

 'EDITING KEYS' (" ")

                         
0FA0     09        EDIT               0FA5      70       DELETE
0FA1     66      cursor left          0FA6      7E       ENTER
0FA2     6A      cursor right         0FA7      CF     SYMBOL SHIFT
0FA3     50      cursor down          0FA8      D4      GRAPHICS
0FA4     85      cursor up

 'EDIT KEY' (" EDIT")
     EDIT    BASIC-,    INPUT   EDIT         .

0FA9 ED-EDIT      LD    HL,(E-PPC)            .
                  BIT   5,(FLAGX)               INPUT,  
                  JP    NZ,1097,CLEAR-SP    .
                  CALL  196E,LINE-ADDR          
                  CALL  1695,LINE-NO             
                  LD    A,D                     0, 
                  OR    E                     
                  JP    Z,1097,CLEAR-SP     .
                  PUSH  HL                    .
                  INC   HL                    
                  LD    C,(HL)              
                  INC   HL
                  LD    B,(HL)
                  LD    HL,+000A                +0A 
                  ADD   HL,BC               ,   
                  LD    B,H                     .
                  LD    C,L
                  CALL  1F05,TEST-ROOM
                  CALL  1097,CLEAR-SP         .
                  LD    HL,(CURCHL)            
                  EX    (SP),HL                 .
                  PUSH  HL                   .
                  LD    A,+FF                 'R',  
                  CALL  1601,CHAN-OPEN        
                                            .
                  POP   HL                    .
                  DEC   HL                   -1  
                                            .
                  DEC   (E-PPC-lo)            , 
                                              .
                  CALL  1855,OUT-LINE        BASIC-.
                  INC   (E-PPC-lo)             
                                            .
                                            :  
                                               ,
                                                .
                  LD    HL,(E-LINE)             
                  INC   HL                     
                  INC   HL                       , 
                  INC   HL                     K-CUR.
                  INC   HL                  

                  LD    (K-CUR),HL
                  POP   HL                     
                  CALL  1615,CHAN-FLAG        
                  RET                         
                                             ED-LOOP.

 'CURSOR DOWN EDITING' ("   ")
0FF3 ED-DOWN      BIT   5,(FLAGX)               INPUT, 
                  JR    NZ,1001,ED-STOP      .
                  LD    HL,+5C49             E-PPC.
                  CALL  190F,LN-FETCH          
                  JR    106E,ED-LIST          
                                             .
1001 ED-STOP      LD    (ERR-NR),+10         'STOP in INPUT'.
                  JR    1024,ED-ENTER        .

 'CURSOR LEFT EDITING' ("   ")
1007 ED-LEFT      CALL  1031,ED-EDGE         .
                  JR    1011,ED-CUR          .

 'CURSOR RIGHT EDITING' ("   ")
100C ED-RIGHT     LD    A,(HL)                .
                  CP    +0D                   " ",
                  RET   Z                      .
                  INC   HL                     
                                            .
1011 ED-CUR       LD    (K-CUR),HL            
                  RET                       K-CUR.

 'DELETE EDITING' ("    DELETE")
1015 ED-DELETE    CALL  1031,ED-EDGE          .
                  LD    BC,+0001              .
                  JP    19E8,RECLAIM-2     

 'ED-IGNORE'
101E ED-IGNORE    CALL  15D4,WAIT-KEY          
                  CALL  15D4,WAIT-KEY          .

 'ENTER EDITING' ("  ENTER")
1024 ED-ENTER     POP   HL                    ED-LOOP
                  POP   HL                   ED-ERROR.
1026 ED-END       POP   HL                    
                  LD    (ERR-SP),HL         ERR-SP.
                  BIT   7,(ERR-NR)            ,  
                  RET   NZ                 
                  LD    SP,HL                   
                  RET                          
                                            .

 'ED-EDGE'
      HL   ,      .    ,           .

1031 ED-EDGE      SCF                       DE    E-LINE
                  CALL  1195,SET-DE         ( )  WORKSP
                                            (   INPUT).
                  SBC   HL,DE                 , 
                                                 
                  ADD   HL,DE               .
                  INC   HL                    .

                  POP   BC                    .
                  RET   C                     ED-LOOP, 
                                              .
                  PUSH  BC                    .
                  LD    B,H                    
                  LD    C,L                  BC.

  , ,         .

103E ED-EDGE-1    LD    H,D                 HL    
                  LD    L,E                  ,   
                  INC   HL                    DE.
                  LD    A,(DE)                .
                  AND   +F0                    , 
                  CP    +10                  
                  JR    NZ,1051,ED-EDGE-2   INK  TAB.
                  INC   HL                    
                                            
                  LD    A,(DE)                .
                  SUB   +17                  TAB   .
                  ADC   A,+00               :  
                                            AT  TAB,  AT  TAB  
                                               ,
                                               .
                  JR    NZ,1051,ED-EDGE-2    ,  
                  INC   HL                   AT  TAB, 
                                               
                                             .
1051 ED-EDGE-2    AND   A                     
                                            .
                  SBC   HL,BC                 
                  ADD   HL,BC                K-CUR, 
                                             .
                  EX    DE,HL                  
                  JR    C,103E,ED-EDGE-1     ,  
                  RET                       ,   
                                              K-CUR.


 'CURSOR UP EDITING' ("   ")
1059 ED-UP        BIT   5,(FLAGX)           ,   INPUT.
                  RET   NZ
                  LD    HL,(E-PPC)             
                  CALL  196E,LINE-ADDR         .
                  EX    DE,HL               HL   
                                             .
                  CALL  1695,LINE-NO          
                                            .
                  LD    HL,+5C4A             E-PPC-hi.
                  CALL  1910,LN-STORE         .
106E ED-LIST      CALL  1795,AUTO-LIST        
                                               
                                            .
                  LD    A,+00                 'K' 
                  JP    1601,CHAN-OPEN        ED-LOOP.

 'ED-SYMBOL'
   SYMBOL  GRAPHICS,      :

1076 ED-SYMBOL    BIT   7,(FLAGX)            ,  
                  JR    Z,1024,ED-ENTER      INPUT LINE.
107C ED-GRAPH     JP    0F81,ADD-CHAR        .

 'ED-ERROR' (" ")
     -   .

107F ED-ERROR     BIT   4,(FLAGS2)           ,  
                  JR    Z,1026,ED-END         'K'.

                  LD    (ERR-NR),+FF           
                  LD    D,+00                'rasp' (
                  LD    E,(RASP)            )  
                  LD    HL,+1A90             
                  CALL  0385,BEEPER
                  JP    0F30,ED-AGAIN

 'CLEAR-SP' (" ")
     .

1097 CLEAR-SP     PUSH  HL                    .
                  CALL  1190,SET-HL         DE    
                                            ,  HL -  .
                  DEC   HL                   
                  CALL  19E5,RECLAIM-1      .
                  LD    (K-CUR),HL            K-CUR
                  LD    (MODE),+00           MODE (' K')
                  POP   HL                   
                  RET                          .

 'KEYBOARD INPUT' ("  ")
       .  ,    CAPS LOCK,         .

10A8 KEY-INPUT    BIT   3,(TV-FLAG)           
                  CALL  NZ,111D,ED-COPY      INPUT-  , 
                                             .
                  AND   A                       Z
                  BIT   5,(FLAGS)             A=+0,   
                  RET   Z                    .
                  LD    A,(LAST-K)              
                  RES   5,(FLAGS)             , ,
                                              .
                  PUSH  AF                    .
                  BIT   5,(TV-FLAG)          ,  
                  CALL  NZ,0D6E,CLS-LOWER    ; ,
                                             'scroll?';
                  POP   AF                    .
                  CP    +20                 ,   >=+20, ..
                  JR    NC,111B,KEY-DONE    
                  CP    +10                    
                  JR    NC,10FA,KEY-CONTR    .
                  CP    +06                     
                  JR    NC,10DB,KEY=M&CL      CAPS LOCK.

    FLASH, BRIGHT  INVERSE.

                  LD    B,A                  .
                  AND   +01                  0-  .
                  LD    C,A                 C  +00 (= ) 
                                            C  +01 (= ).
                  LD    A,B                  .
                  RRA                         (  0).
                  ADD   A,+12                 +12, 
                  JR    1105,KEY-DATA       FLASH - +12, BRIGHT - +13
                                             INVERSE - +14.

 CAPS LOCK     .

10DB KEY-M&CL     JR    NZ,10E6,KEY-MODE        .
                  LD    HL,+5C6A            FLAGS2.
                  LD    A,+08                3  FLAGS2, 
                  XOR   (HL)                 CAPS LOCK.
                  LD    (HL),A
                  JR    10F4,KEY-FLAG        .
10E6 KEY-MODE     CP    +0E                    .

                  RET   C
                  SUB   +0D                  .
                  LD    HL,+5C41            MODE.
                  CP    (HL)                ?
                  LD    (HL),A                 .
                  JR    NZ,10F4,KEY-FLAG    ,  ;
                  LD    (HL),+00                "L".
10F4 KEY-FLAG     SET   3,(TV-FLAG)           "
                                            ".
                  CP    A                     
                  RET                        .

    (  FLASH, BRIGHT  INVERSE).

10FA KEY-CONTR    LD    B,A                  .
                  AND   +07                     0-7
                  LD    C,A                      C.
                  LD    A,+10                 A   INK.
                  BIT   3,B                     "",
                  JR    NZ,1105,KEY-DATA     A   PAPER.
                  INC   A                  

   K-DATA,      KEY-INPUT  KEY-NEXT.

1105 KEY-DATA     LD    (K-DATA),C          .
                  LD    DE,+110D            KEY-NEXT.
                  JR    1113,KEY-CHAN        .

:      KEY-INPUT  A    " "       KEY-NEXT,   .

110D KEY-NEXT     LD    A,(K-DATA)           .
                  LD    DE,+10A8            KEY-INPUT.

       .

1113 KEY-CHAN     LD    HL,(CHANS)            .
                  INC   HL
                  INC   HL
                  LD    (HL),E                 .
                  INC   HL
                  LD    (HL),D

        A.

111B KEY-DONE     SCF                       ,   .
                  RET                       .

 'LOWER SCREEN COPYING' ("   ")
    ,        INPUT      .

111D ED-COPY      CALL  0D4D,TEMPS            .
                  RES   3,(TV-FLAG)          "  
                  RES   5,(TV-FLAG)         "    
                                              
                  LD    HL,(S-POSNL)          
                  PUSH  HL                  S-POSNL.
                  LD    HL,(ERR-SP)           
                  PUSH  HL                  ERR-SP.
                  LD    HL,+1167             ED-FULL.
                  PUSH  HL                      ,
                  LD    (ERR-SP),SP           ED-FULL.
                                                .
                  LD    HL,(ECHO-E)           ECHO-E
                  PUSH  HL                   .
                  SCF                       HL    ,
                  CALL  1195,SET-HL          DE -  .
                  EX    DE,HL
                  CALL  187D,OUT-LINE2       .
                  EX    DE,HL                  
                  CALL  18E1,OUT-CURS       .
                  LD    HL,(S-POSNL)           S-POSNL
                  EX    (SP),HL                 ECHO-E.
                  EX    DE,HL                ECHO-E  DE.
                  CALL  0D4D,TEMPS             .

  ,  ,   ,   ""  PAPER.

1150 ED-BLANK     LD    A,(S-POSNL-hi)         
                  SUB   D                      .
                  JR    C,117C,ED-C-DONE     ,  
                                            ""  .
                  JR    NZ,115E,ED-SPACES    ,  
                                                 .
                  LD    A,E                    
                  SUB   (S-POSNL-lo)           .
                  JR    NC,117C,ED-C-DONE   ,   
                                            .
115E ED-SPACES    LD    A,+20                ''.
                  PUSH  DE                    .
                  CALL  09F4,PRINT-OUT      .
                  POP   DE                    .
                  JR    1150,ED-BLANK        .

   .

1167 ED-FULL      LD    D,+00                 'rasp'.
                  LD    E,(RASP)            
                  LD    HL,+1A90
                  CALL  03B5,BEEPER
                  LD    (ERR-NR),+FF          .
                  LD    DE,(S-POSNL)          
                  JR    117E,ED-C-END       S-POSNL   .

         INPUT-.

117C ED-C-DONE    POP   DE                    .
                  POP   HL                   .

   .

117E ED-C-END     POP   HL                    
                  LD    (ERR-SP),HL         ERR-SP.
                  POP   BC                    S-POSNL.
                  PUSH  DE                    
                                            .
                  CALL  0DD9,CL-SET           .
                  POP   HL                    S-POSNL
                  LD    (ECHO-E),HL           ECHO-E.
                  LD    (X-PTR-hi),+00       
                  RET                        X-PTR  
                                            .

 'SET-HL'  'SET-DE'
    HL       DE          .

1190 SET-HL       LD    HL,(WORKSP)            
                  DEC   HL                   .
                  AND   A                     .
1195 SET-DE       LD    DE,(E-LINE)            
                  BIT   5,(FLAGX)           ,    
                  RET   Z                    ,  .
                  LD    DE,(WORKSP)             DE
                  RET   C                    .
                  LD    HL,(STKBOT)          STKBOT  .
                  RET                       

 'REMOVE-FP'
         BASIC-.

11A7 REMOVE-FP    LD    A,(HL)                 
                                            .
                  CP    +0E                   ?
                  LD    BC,+0006               6 .
                  CALL  Z,19E8,RECLAIM-2       
                                            .
                  LD    A,(HL)                .
                  INC   HL                   .
                  CP    +0D                  ' '?
                  JR    NZ,11A7,REMOVE-FP    ,  ,
                  RET                         ,   .



