                  JR    201E,PR-AT-TAB         .
                                          
  'TAB'.

200E PR-ITEM-2    CP    +AD                  ,  
                  JR    NZ,2024,PR-ITEM-3    'TAB'.

   'TAB'.

                  RST   0020,NEXT-CHAR        .
                  CALL  1C82,EXPT-1NUM         
                                             .
                  CALL  1FC3,UNSTACK-Z      ,   ,
                                             .
                  CALL  1E99,FIND-INT2         
                                             BC.
                  LD    A,+17                 TAB 
                                              A

  'AT'  'TAB'       PRINT-OUT.

201E PR-AT-TAB    RST   0010,PRINT-A-1        .
                  LD    A,C                     
                  RST   0010,PRINT-A-1      .
                  LD    A,B                    
                  RST   0010,PRINT-A-1        .
                  RET

    .

2024 PR-ITEM-3    CALL  21F2,CO-TEMP-3         
                                            ,  
                                             .
                  RET   NC                  ,  
                                             .
                  CALL  2070,STR-ALTER       , 
                                               ..
                  RET   NC                  ,    
                                            .

      ,   .

                  CALL  24FB,SCANNING        , , 
                  CALL  1FC3,UNSTACK-Z       , .
                  BIT   6,(FLAGS)             .
                  CALL  Z,2BF1,STK-FETCH      ,  
                                             ,  
                  JP    NZ,2DE3,PRINT-FP     ,   PRINT-FP.

         .

203C PR-STRING    LD    A,B                 ,    
                  OR    C                    , 
                  DEC   BC                   .
                  RET   Z                   
                  LD    A,(DE)                 
                  INC   DE                  .
                  RST   0010,PRINT-A-1         
                  JR    203C,PR-STRING      ,  
                                              .

 'END OF PRINTING' (" ")
   Z,       .

2045 PR-END-Z     CP    +29                 ,   ")".
                  RET   Z                   
2048 PR-ST-END    CP    +0D                 ,  
                  RET   Z                   " ".
                  CP    +3A                     ':'
                  RET                        .

 'PRINT POSITION' (" ")
      .

204E PR-POSN-1    RST   0018,GET-CHAR         .
                  CP    +3B                  ,  
                  JR    Z,2067,PR-POSN-3    ';'.
                  CP    +2C                    
                  JR    NZ,2061,PR-POSN-2     ',',   
                  CALL  2530,SYNTAX-Z        
                  JR    Z,2067,PR-POSN-3      .
                  LD    A,+06                 A 
                  RST   0010,PRINT-A-1       ""   ,
                  JR    2067,PR-POSN-3        .
2061 PR-POSN-2    CP    +27                  " ' "?
                  RET   NZ                  ,   -
                                             .
                  CALL  1FF5,PR-CR             ,
                                             " ".
2067 PR-POSN-3    RST   0020,NEXT-CHAR        .
                  CALL  2045,PR-END-Z            ,
                  JR    NZ,206E,PR-POSN-4    ,  
                  POP   BC                     
206E PR-POSN-4    CP    A                   .
                  RET                          Z,  
                                              
                                            .

 'ALTER STREAM' (" ")
    ,    ,      .

2070 STR-ALTER    CP    +23                     '#",
                  SCF                          
                  RET   NZ                  .
                  RST   0020,NEXT-CHAR       CH-ADD.
                  CALL  1C82,EXPT-1NUM         
                                            .
                  AND   A                     .
                  CALL  1FC3,UNSTACK-Z        , 
                                            .
                  CALL  1E94,FIND-INT1        A  .
                  CP    +10                   0, 
                  JP    NC,160E,REPORT-O     ,  #FF.
                  CALL  1601,CHAN-OPEN        
                                             .
                  AND   A                      
                  RET                       .

  'INPUT' ("")
     ,   . ,      INPUT          .

2089 INPUT        CALL  2530,SYNTAX-Z        ,  
                  JR    Z,2096,INPUT-1      .
                  LD    A,+01                 'K'.
                  CALL  1601,CHAN-OPEN
                  CALL  0D6E,CLS-LOWER        
                                            .
2096 INPUT-1      LD    (TV-FLAG),+01          
                                               .
                  CALL  20C1,IN-ITEM-1         
                                             INPUT.
                  CALL  1BEE,CHECK-END        , 
                                              
                                            .
                  LD    BC,(S-POSN)            .
                  LD    A,(DF-SZ)            ,  
                  CP    B                       .
                  JR    C,20AD,INPUT-2     
                  LD    C,+21             
                  LD    B,A                
20AD INPUT-2      LD    (S-POSN),BC          S-POSN.
                  LD    A,+19                 
                  SUB   B                   .
                  LD    (SCR-CT),A
                  RES   0,(TV-FLAG)          ' '.
                  CALL  0DD9,CL-SET           
                  JP    0D6E,CLS-LOWER         CLS-LOWER.

 INPUT    PRINT      .

20C1 IN-ITEM-1    CALL  204E,PR-POSN-1        
                  JR    Z,20C1,IN-ITEM-1      .
                  CP    +28                  ,  
                  JR    NZ,20D8,IN-ITEM-2     '('.
                  RST   0020,NEXT-CHAR        .
                  CALL  1FDF,PRINT-2           
                                            PRINT   
                                             .
                  RST   0018,GET-CHAR         .
                  CP    +29                   C, 
                  JP    NZ,1C8A,REPORT-C      ')'.
                  RST   0020,NEXT-CHAR         
                  JP    21B2,IN-NEXT-2       ,  ,
                                                INPUT.

 ,   INPUT LINE.

20D8 IN-ITEM-2    CP    +CA                  , 
                  JR    NZ,20ED,IN-ITEM-3    'LINE'.
                  RST   0020,NEXT-CHAR       CH-ADD.
                  CALL  1C1F,CLASS-01         
                                             .
                  SET   7,(FLAGX)            ' INPUT LINE'.
                  BIT   6,(FLAGS)             C,  
                  JP    NZ,1C8A,REPORT-C      .
                  JR    20FA,IN-PROMPT         
                                             .

    INPUT.

20ED IN-ITEM-3    CALL  2C8D,ALPHA             
                  JP    NC,21AF-IN-NEXT-1   ,   
                                              .
                  CALL  1C1F,CLASS-01         
                                            .
                  RES   7,(FLAGX)            ' INPUT LINE'
                                            ("  ")

      .

20FA IN-PROMPT    CALL  2530,SYNTAX-Z           
                  JP    Z,21B2,IN-NEXT-2     .
                  CALL  16BF,SET-WORK         .
                  LD    HL,+5C71             FLAGX.
                  RES   6,(HL)               'string result'
                                            (" ")
                  SET   5,(HL)               'INPUT mode'.
                  LD    BC,+0001              
                                               .
                  BIT   7,(HL)                 
                  JR    NZ,211C,IN-PR-2     'LINE'.
                  LD    A,(FLAGS)            ,   
                  AND   +40                  .
                  JR    NZ,211A,IN-PR-1
                  LD    C,+03                  
                                            .
211A IN-PR-1      OR    (HL)                 6 FLAGX  
                  LD    (HL),A                .
211C IN-PR-2      RST   0030,BC-SPACES        
                                            .
                  LD    (HL),+0D             " " 
                                              .
                  LD    A,C                   6  C
                  RRCA                        , 
                  RRCA                         .
                  JR    NC,2129,IN-PR-3
                  LD    A,+22                ' '
                  LD    (DE),A                  
                  DEC   HL                  .
                  LD    (HL),A
2129 IN-PR-3      LD    (K-CUR),HL             
                                            .

  INPUT LINE EDITOR          INPUT      .

                  BIT   7,(FLAGX)              'INPUT
                  JR    NZ,215E,IN-VAR-3    LINE'.
                  LD    HL,(CH-ADD)           
                  PUSH  HL                  CH-ADD  ERR-SP  .
                  LD    HL,(ERR-SP)         
                  PUSH  HL
213A IN-VAR-1     LD    HL,+213A                
                  PUSH  HL                   .
                  BIT   4,(FLAGS2)             'K'
                  JR    Z,2148,IN-VAR-2       
                  LD    (ERR-SP),SP          .
2148 IN-VAR-2     LD    HL,(WORKSP)          HL   
                  CALL  11A7,REMOVE-FP      INPUT     
                                             .   
                                             .
                  LD    (ERR-NR),+FF         '  '.
                  CALL  0F2C,EDITOR          INPUT   
                  RES   7,(FLAGS)            (, 
                  CALL  21B9,IN-ASSIGN      ),  INPUT 
                  JR    2161,IN-VAR-4       ;    ,
                                            ,   - 
                                             IN-VAR-1.
215E IN-VAR-3     CALL  0F2C,EDITOR          'LINE'.

         .

2161 IN-VAR-4     LD    (K-CUR-hi),+00        .
                  CALL  21D6,IN-CHAN-K        
                  JR    NZ,2174,IN-VAR-5     ,
                                              'K'.
                  CALL  111D,ED-COPY           
                  LD    BC,(ECHO-E)             ECHO-E
                  CALL  0DD9,CL-SET            
                                            .
2174 IN-VAR-5     LD    HL,+5C71             FLAGX.
                  RES   5,(HL)               ' '.
                  BIT   7,(HL)                 
                  RES   7,(HL)              INPUT LINE.
                  JR    NZ,219B,IN-VAR-6
                  POP   HL                    IN-VAR-1.
                  POP   HL                   ERR-SP  
                  LD    (ERR-SP),HL         .
                  POP   HL                     CH-ADD
                  LD    (X-PTR),HL           X-PTR.
                  SET   7,(FLAGS)              "/
                  CALL  21B9,IN-ASSIGN      ",  ,
                                             .
                  LD    HL,(X-PTR)            
                  LD    (X-PTR-hi),+00       CH-ADD   X-PTR.
                  LD    (CH-ADD),HL
                  JR    21B2,IN-NEXT-2         
                                            INPUT,   .
219B IN-VAR-6     LD    HL,(STKBOT)           "LINE"  
                  LD    DE,(WORKSP)         .
                  SCF
                  SBC,  HL,DE
                  LD    B,H                 DE   , 
                  LD    C,L                 BC  .
                  CALL  2AB2,STK-ST-$          
                  CALL  2AFF,LET             
                                            .
                  JR    21B2,IN-NEXT-2         
                                             .

   INPUT.

21AF IN-NEXT-1    CALL  1FFC,PR-ITEM-1        .
21B2 IN-NEXT-2    CALL  204E,PR-POSN-1        .
                  JP    Z,20C1,IN-ITEM-1         
                                              ;
                  RET                        .

 'IN-ASSIGN'
       INPUT.     /,   ""       "" .

21B9 IN-ASSIGN    LD    HL,(WORKSP)          CH-ADD  
                  LD    (CH-ADD),HL             
                  RST   0018,GET-CHAR        .
                  CP    +E2                  'STOP'?
                  JR    Z,21D0,IN-STOP      ,  .
                  LD    A,(FLAGX)              
                  CALL  1C59,VAL-FET-2       ""
                                            .
                  RST   0018,GET-CHAR         
                  CP    +0D                     
                  RET   Z                   " ". ,
                                              .

   "C - Nonsense in BASIC"

21CE REPORT-C     RST   0008,ERROR-1          
                  DEFB  +0B                 .

 ,   INPUT    'STOP'.

21D0 IN-STOP      CALL  2530,SYNTAX-Z           
                  RET   Z                      .

 "H - STOP in INPUT"

21D4 REPORT-H     RST   0008,ERROR-1          
                  DEFB  +10                 .

 'IN-CHAN-K'
      Z    'K'.

21D6 IN-CHAN-K    LD    HL,(CURCHL)           
                  INC   HL                   0   
                  INC   HL                  ,    
                  INC   HL                    'K'.
                  INC   HL                  
                  LD    A,(HL)
                  CP    +4B
                  RET                       .

 'COLOUR ITEM' (" ")
       :
1.  "  ";
2.  "  ".
        PRINT-OUT.      .    CO-TEMP-2.

21E1 CO-TEMP-1    RST   0020,NEXT-CHAR        
                                              BASIC.
21E2 CO-TEMP-2    CALL  21F2,CO-TEMP-3       ,  ,
                                               
                                             "" 
                                            .
                  RET   C                       C,
                                               .
                  RST   0018,GET-CHAR         .
                  CP    +2C                  ,  
                  JR    Z,21E1,CO-TEMP-1    ','  ';',  - .
                  CP    +3B                 
                  JR    Z,21E1,CO-TEMP-1
                  JP    1C8A,REPORT-C         ' C'.
21F2 CO-TEMP-3    CP    +D9                     .
                  RET   C                   
                  CP    +DF                 ,     
                                              +D9  +DE (INK-
                                            OVER).
                  CCF
                  RET   C
                  PUSH  AF                    
                  RST   0020,NEXT-CHAR      ,  
                  POP   AF                  CH-ADD   ,
                                               .

     ""   PRINT-OUT.

21FC CO-TEMP-4    SUB   +C9                   (+D9 - +DE)
                                               
                                             (+10 - +15).
                  PUSH  AF                    
                  CALL  1C82,EXPT-1NUM      ,  
                  POP   AF                     .
                  AND   A                      
                  CALL  1FC3,UNSTACK-Z         .
                  PUSH  AF                    
                  CALL  1E94,FIND-INT1      ,  
                  LD    D,A                    D.
                  POP   AF
                  RST   0010,PRINT-A-1        .
                  LD    A,D                   
                  RST   0010,PRINT-A-1      .
                  RET                       

2.    ATTR-T, MASK-T & P-FLAG     .      PRINT-OUT.         A,   -   D. ,      ""  .

2211 CO-TEMP-5    SUB   +11                    
                  ADC   A,+00                 INK  PAPER.
                  JR    Z,2234,CO-TEMP-7
                  SUB   +02                    
                  ADC   A,+00                FLASH  BRIGHT.
                  JR    Z,2273,CO-TEMP-C    

     +01  INVERSE  +02  OVER,    P-FLAG  .

                  CP    +01                     OVER.
                  LD    A,D                  .
                  LD    B,+01                  OVER.
                  JR    NZ,2228,CO-TEMP-6    .
                  RLCA                       2  A 
                  RLCA                       INVERSE 0  
                  LD    B,+04                INVERSE 1;  
                                             2   B.
2228 CO-TEMP-6    LD    C,A                    
                                              A.
                  LD    A,D                  INVERSE  OVER 
                  CP    +02                   '0-1'.
                  JR    NC,2244,REPORT-K    
                  LD    A,C                   A.
                  LD    HL,+5C91             P-FLAG,  
                                             .
                  JR    226C,CO-CHANGE        CO-CHANGE 
                                             P-FLAG  
                                             B  . .. 0 
                                             OVER  2  -  INVERSE.

PAPER  INK   .       INK.

2234 CO-TEMP-7    LD    A,D                  .
                  LD    B,+07                  INK.
                  JR    C,223E,CO-TEMP-8     ,  INK.
                  RLCA                         PAPER
                  RLCA                       8.
                  RLCA
                  LD    B,+38                  PAPER.
223E CO-TEMP-8    LD    C,A                     C,
                                              
                                            .
                  LD    A,D                   .
                  CP    +0A                   PAPER/INK
                  JR    C,2246,CO-TEMP-9      '0'  '9'.

   "K - Invalid colour"

2244 REPORT-K     RST   0008,ERROR-1          
                  DEFB  +13                 .

  PAPER  INK.

2246 CO-TEMP-9    LD    HL,+5C8F               ATTR-T,
                                            MASK-T  P-FLAG.
                  CP    +08                    PAPER/INK
                  JR    C,2258,CO-TEMP-B     '0'  '7'.
                  LD    A,(HL)                
                  JR    Z,2257,CO-TEMP-A    ATTR-T    
                                               
                                            PAPER/INK='8'.
                  OR    B                     PAPER/INK='9' 
                  CPL                       PAPER  INK   
                  AND   +24                  .
                  JR    Z,2257,CO-TEMP-A       INK/PAPER;
                  LD    A,B                    
                                            INK/PAPER.
2257 CO-TEMP-A    LD    C,A                     C.

  (B)   (C)    ATTR-T.

2258 CO-TEMP-B    LD    A,C                  .
                  CALL  226C,CO-CHANGE       ATTR-T  
                                             .

  MASK-T.

                  LD    A,+07                MASK-T 
                  CP    D                      PAPER/INK
                  SBC   A,A                 '8'  '9'.
                  CALL  226C,CO-CHANGE       MASK-T.

  P-FLAG.

                  RLCA                        
                  RLCA                        B   
                  AND   +50                 4  6,   .
                  LD    B,A                 
                  LD    A,+08                P-FLAG 
                  CP    D                     PAPER/INK=9
                  SBC   A,A                 
                                              CO-CHANGE 
                                             P-FLAG.

 'CO-CHANGE'
  ,     ""    A.  B  ,  ,       A  (HL).

226C CO-CHANGE    XOR   (HL)                ,     B,
                  AND   B                     , 
                  XOR   (HL)                   
                  LD    (HL),A               .
                  INC   HL                      
                                             .
                  LD    A,B                      A.
                  RET                       

FLASH  BRIGHT   .

2273 CO-TEMP-C    SBC   A,A                  BRIGHT   Z.
                  LD    A,D                    .
                  RRCA                      
                  LD    B,+80                  FLASH.
                  JR    NZ,227D,CO-TEMP-D      FLASH.
                  RRCA                         
                  LD    B,+40                 BRIGHT.
227D CO-TEMP-D    LD    C,A                     C.
                  LD    A,D                     
                  CP    +08                 .  
                                            '0', '1'  '8'.
                  JR    Z,2287,CO-TEMP-E   
                  CP    +02
                  JR    NC,2244,REPORT-K

The system variable ATTR-T can now be altered.

2287 CO-TEMP-E    LD    A,C                  .
                  LD    HL,+5C8F             ATTR-T.
                  CALL  226C,CO-CHANGE        .

    MASK-T.