LN   BTLLINE                                                                  
SN   BTSLINE                                                                  
DD   START-LINE(2.0), SCROLL-FLAG(1)                                          
MAINLINE                                                                      
     OPEN SCREEN BTSLINE                                                      
     OPEN LINK BTLLINE                                                        
     PRINT SCREEN BTSLINE                                                     
     READ BTLLINE USING KEY RANGE FROM FIRST TO LAST                          
        PROCESSING IS DELETE-RECS                                             
     INPUT SCREEN BTSLINE PRE PROCESS FIELD1, GET-START-LINE                  
     LET L = 1                          !line number or key to each record    
     LET L1 = 0                         !line offset or position for printing 
     DO LOOP UNTIL TERM-KEY = 4                                               
        DO GET-DATA                                                           
        PRINT SCREEN BTSLINE DATA                                             
           LINE OFFSET L1                                                     
        INPUT SCREEN BTSLINE DATA-NAME FIELD2 LINE OFFSET IS L1               
           POST PROCESS FIELD2, SCROLL                                        
        IF TERM-KEY <> 4 AND SCROLL-FLAG <> "X" THEN                          
           ADD BTLLINE USING KEY STR(L:"00000")                               
              DUPLICATE KEY PROCESS IS DUPE-RECORD                            
           LET L = L + 1                                                      
           DO CLEAR-DATA                                                      
           IF L1 < 4 THEN                                                     
              LET L1 = L1 + 1                                                 
           ELSE                                                               
              LET L1 = 0                                                      
              LET L = L - 4                                                   
              DO INCREMENT-DATA                                               
           ENDIF                                                              
        ENDIF                                                                 
        LET SCROLL-FLAG = ""                                                  
     ENDLOOP                                                                  
                                                                              
SCROLL                                  !what type of scrolling to perform    
     IF TERM-KEY <> 0 THEN                                                    
        LET SCROLL-FLAG = "X", BTSLINE.FIELD = 99                             
     ENDIF                                                                    
     IF TERM-KEY = -4 THEN              !testing for up arrow                 
        DO CLEAR-DATA                                                         
        IF L1 > 0 THEN                                                        
           LET L1 = L1 - 1                                                    
        ELSE                                                                  
           IF L > 1 THEN                                                      
              LET L = L - 1                                                   
              DO INCREMENT-DATA                                               
              LET L = L - 3                                                   
              LET L1 = 0                                                      
           ENDIF                                                              
        ENDIF                                                                 
        IF L > 1 THEN                                                         
           LET L = L - 1                                                      
        ENDIF                                                                 
     ENDIF                                                                    
     IF TERM-KEY = -3 THEN              !testing for down arrow               
        DO CLEAR-DATA                                                         
        IF L1 < 4 THEN                                                        
           LET L1 = L1 + 1                                                    
           LET L = L + 1                                                      
        ELSE                                                                  
           LET L1 = 0                                                         
           LET L = L - 3                                                      
           DO INCREMENT-DATA                                                  
        ENDIF                                                                 
     ENDIF                                                                    
     IF TERM-KEY = -17 THEN             !testing for page up                  
        PRINT SCREEN BTSLINE DATA CLEAR                                       
        IF L1 > 0 THEN                                                        
           LET N = L1                                                         
           DO CLEAR-DATA                                                      
           LET L1 = 0                                                         
           IF L > 1 THEN                                                      
              LET L = L - N                                                   
           ENDIF                                                              
        ELSE                                                                  
           LET L1 = 0                                                         
           IF L > 5 THEN                                                      
              LET L = L - 5                                                   
              DO INCREMENT-DATA                                               
           ELSE                                                               
              LET L = 1                                                       
              DO LOOP UNTIL L = 5                                             
                 DO GET-DATA                                                  
                 DO CLEAR-DATA                                                
                 LET L = L + 1                                                
                 LET L1 = L1 + 1                                              
              ENDLOOP                                                         
           ENDIF                                                              
        ENDIF                                                                 
     ENDIF                                                                    
     IF TERM-KEY = -16 THEN             !testing for page down                
        IF L1 >= 0 THEN                                                       
           LET L1 = 0                                                         
           DO INCREMENT-DATA                                                  
        ENDIF                                                                 
     ENDIF                                                                    
                                                                              
CLEAR-DATA                              !clears data from specific fields     
     PRINT SCREEN BTSLINE CLEAR DATA-NAME LIST FIELD3, FIELD4, FIELD5         
        LINE OFFSET L1                                                        
                                                                              
GET-DATA                                          !setting your key equal to  
     LET BTLLINE = "", FIELD1 = STR(L:"00000")    !a specific line#,reading   
     READ BTLLINE USING KEY FIELD1                !the file and printing the  
     PRINT SCREEN BTSLINE DATA-NAME LIST FIELD1, FIELD2       !entire record  
        LINE OFFSET L1                                                        
                                                                              
INCREMENT-DATA                           !increments the line number and line 
     DO GET-DATA                         !offset in order to get the corect   
     DO CLEAR-DATA                       !record on the correct line.         
     DO LOOP UNTIL L1 = 4                                                     
        LET L1 = L1 + 1                                                       
        LET L = L + 1                                                         
        DO GET-DATA                                                           
        DO CLEAR-DATA                                                         
     ENDLOOP                                                                  
                                                                              
GET-START-LINE                !sets up for correct line and field positioning 
     LET START-LINE = BTSLINE.LINE, BTSLINE.FIELD = 99                        
                                                                              
DELETE-RECS                             !erase the entire file                
     DELETE BTLLINE USING KEY FIELD1                                          
                                                                              
DUPE-RECORD                             !allows you to change data records    
     LET A$ = BTLLINE                                                         
     CHANGE BTLLINE USING KEY STR(L:"00000")                                  
        PROCESSING IS CHANGE-DATA                                             
                                                                              
CHANGE-DATA                             !performs the change                  
     LET BTLLINE = A$                                                         
                                                                              
ENDSCRIPT                               !end of program