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