; Macro: Masks every Xth row in a range of columns ; CM ; Clear all Memory Registers FIX 0 ; Specify the number of decimal places ; ; Input Dialog Box: alpha "Initial Column to be Masked" STOa 0 0e+00 STO 00 alpha "Last Column to be Masked" STOa 1 1 STO 01 alpha "Xth Row to Mask" STOa 2 2 STO 02 alpha "Cloak Macro - Multiple Columns" inpt 3 ; ; Storage Locations ; 00 - First column getting masked ; 01 - Last column getting masked ; 02 - Xth Row ; 03 - Column Counter ; 04 - Row Counter ; 05 - Number of rows in the data window ; 06 - Row and Column # in decimal form (ex. 9.03 is row 9, col 3) ; FIX 6 ibase size ; Returns the size of the data window STO 05 ; Stores the number of rows that are in the data window RCL 00 ; Recall column number STO 03 ; Set Column Counter GTO 50 ; Store address in decimal form, set row counter ; LBL 10 XEQ 20 RCL 01 ; Recall final column value ISG 03 ; Increment counter by 1, are contents of 03 <= 01 GTO 50 ; Yes - Increase column STOP ; No - Stop program ; LBL 20 XEQ 80 ; Test to see if the last row has been reached x = y ; Check to see if current address = # of rows RTN ; If the last row is reached, move to next column const 0.000000000e+00 DSE 04 ; Decrement counter by 1; Are contents of 02 > 0.0 GTO 40 ; Yes - Increase row number by 1 ; LBL 30 Mi 06 ; Mask the cell specified in 06 XEQ 60 ; Reset Row Counter XEQ 70 ; Increase current address GTO 20 ; LBL 40 XEQ 70 ; Increase current address GTO 20 ; LBL 50 RCL 03 ; Recall current column const 1.000000000e+03 / ; Divide column by 1000 STO 06 ; Store column in decimal format XEQ 60 ; Reset Row Counter GTO 10 ; LBL 60 RCL 02 STO 04 ; Reset Row Counter RTN ; LBL 70 const 1.000000000e+00 ADD 06 ; Increase address by 1 RTN ; LBL 80 RCL 05 ; Recall the number of rows RCL 06 ; Recall the current address int ; Get the integer portion of the address RTN ; Return to the XEQ statement and test 05 = 06 ; ; Version 1.2 - August 10, 1993 ; by Steve Wilson